appium-safari-driver 3.3.2 → 3.3.4
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/.github/workflows/unit-test.yml +2 -2
- package/CHANGELOG.md +14 -0
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/lib/commands/cookies.js +1 -1
- package/build/lib/commands/cookies.js.map +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/index.js +1 -1
- package/build/lib/commands/index.js.map +1 -1
- package/build/lib/commands/record-screen.js +1 -1
- package/build/lib/commands/record-screen.js.map +1 -1
- package/build/lib/desired-caps.js +1 -1
- package/build/lib/desired-caps.js.map +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/driver.js.map +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/logger.js.map +1 -1
- package/build/lib/method-map.js +1 -1
- package/build/lib/method-map.js.map +1 -1
- package/build/lib/safari.js +1 -1
- package/build/lib/safari.js.map +1 -1
- package/build/lib/utils.js +1 -1
- package/build/lib/utils.js.map +1 -1
- package/npm-shrinkwrap.json +1420 -4466
- package/package.json +3 -3
|
@@ -13,13 +13,13 @@ jobs:
|
|
|
13
13
|
id: generate-matrix
|
|
14
14
|
run: |
|
|
15
15
|
sudo apt-get install -y lynx
|
|
16
|
-
lynx -dump https://endoflife.date/nodejs | grep -E -o '[0-9]+
|
|
16
|
+
lynx -dump https://endoflife.date/nodejs | grep -E -o '[0-9]+[( a-zA-Z]+LTS\)' | grep -E -o '([0-9]+)' > eol.list
|
|
17
17
|
cat eol.list
|
|
18
18
|
lts1=$(cat eol.list | head -1)
|
|
19
19
|
lts2=$(cat eol.list | head -2 | tail -1)
|
|
20
20
|
lts3=$(cat eol.list | head -3 | tail -1)
|
|
21
21
|
VERSIONS="[$lts1, $lts2, $lts3]"
|
|
22
|
-
echo
|
|
22
|
+
echo "versions=${VERSIONS}" >> "$GITHUB_OUTPUT"
|
|
23
23
|
|
|
24
24
|
test:
|
|
25
25
|
needs:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [3.3.4](https://github.com/appium/appium-safari-driver/compare/v3.3.3...v3.3.4) (2023-07-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Miscellaneous Chores
|
|
5
|
+
|
|
6
|
+
* **deps-dev:** bump conventional-changelog-conventionalcommits ([#59](https://github.com/appium/appium-safari-driver/issues/59)) ([911cbd4](https://github.com/appium/appium-safari-driver/commit/911cbd4d200a5dcce7eac2fd893050874f889414))
|
|
7
|
+
|
|
8
|
+
## [3.3.3](https://github.com/appium/appium-safari-driver/compare/v3.3.2...v3.3.3) (2023-04-10)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Miscellaneous Chores
|
|
12
|
+
|
|
13
|
+
* **deps-dev:** bump rimraf from 4.4.1 to 5.0.0 ([#54](https://github.com/appium/appium-safari-driver/issues/54)) ([c5aed74](https://github.com/appium/appium-safari-driver/commit/c5aed746b594763e26f543647ef452f58fe0e223))
|
|
14
|
+
|
|
1
15
|
## [3.3.2](https://github.com/appium/appium-safari-driver/compare/v3.3.1...v3.3.2) (2023-01-17)
|
|
2
16
|
|
|
3
17
|
|
package/build/index.js
CHANGED
|
@@ -15,4 +15,4 @@ require("source-map-support/register");
|
|
|
15
15
|
var _driver = _interopRequireDefault(require("./lib/driver"));
|
|
16
16
|
var _default = _driver.default;
|
|
17
17
|
exports.default = _default;
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHJpdmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVmYXVsdCIsIlNhZmFyaURyaXZlciIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNhZmFyaURyaXZlciBmcm9tICcuL2xpYi9kcml2ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBTYWZhcmlEcml2ZXI7XG5leHBvcnQgeyBTYWZhcmlEcml2ZXIgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBd0MsSUFBQUMsUUFBQSxHQUV6QkMsZUFBWTtBQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FBQUgsUUFBQSJ9
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["SafariDriver"],"sources":["../index.js"],"sourcesContent":["import SafariDriver from './lib/driver';\n\nexport default SafariDriver;\nexport { SafariDriver };\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAwC,
|
|
1
|
+
{"version":3,"file":"index.js","names":["_driver","_interopRequireDefault","require","_default","SafariDriver","exports","default"],"sources":["../index.js"],"sourcesContent":["import SafariDriver from './lib/driver';\n\nexport default SafariDriver;\nexport { SafariDriver };\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,IAAAC,QAAA,GAEzBC,eAAY;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
|
|
@@ -12,4 +12,4 @@ commands.deleteCookies = async function deleteCookies() {
|
|
|
12
12
|
};
|
|
13
13
|
var _default = commands;
|
|
14
14
|
exports.default = _default;
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImV4cG9ydHMiLCJkZWxldGVDb29raWVzIiwic2FmYXJpIiwicHJveHkiLCJjb21tYW5kIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2Nvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuY29tbWFuZHMuZGVsZXRlQ29va2llcyA9IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUNvb2tpZXMgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5zYWZhcmkucHJveHkuY29tbWFuZCgnL2Nvb2tpZScsICdERUxFVEUnKTtcbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BQU1BLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFBQ0MsT0FBQSxDQUFBRCxRQUFBLEdBQUFBLFFBQUE7QUFFcEJBLFFBQVEsQ0FBQ0UsYUFBYSxHQUFHLGVBQWVBLGFBQWFBLENBQUEsRUFBSTtFQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7QUFDN0QsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FHYU4sUUFBUTtBQUFBQyxPQUFBLENBQUFNLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.js","names":["commands","deleteCookies","safari","proxy","command"],"sources":["../../../lib/commands/cookies.js"],"sourcesContent":["const commands = {};\n\ncommands.deleteCookies = async function deleteCookies () {\n return await this.safari.proxy.command('/cookie', 'DELETE');\n};\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cookies.js","names":["commands","exports","deleteCookies","safari","proxy","command","_default","default"],"sources":["../../../lib/commands/cookies.js"],"sourcesContent":["const commands = {};\n\ncommands.deleteCookies = async function deleteCookies () {\n return await this.safari.proxy.command('/cookie', 'DELETE');\n};\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA,MAAMA,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAEpBA,QAAQ,CAACE,aAAa,GAAG,eAAeA,aAAaA,CAAA,EAAI;EACvD,OAAO,MAAM,IAAI,CAACC,MAAM,CAACC,KAAK,CAACC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC7D,CAAC;AAAC,IAAAC,QAAA,GAGaN,QAAQ;AAAAC,OAAA,CAAAM,OAAA,GAAAD,QAAA"}
|
|
@@ -18,4 +18,4 @@ commands.findElOrEls = async function findElOrEls(strategy, selector, mult, cont
|
|
|
18
18
|
};
|
|
19
19
|
var _default = commands;
|
|
20
20
|
exports.default = _default;
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3VwcG9ydCIsInJlcXVpcmUiLCJjb21tYW5kcyIsImV4cG9ydHMiLCJmaW5kRWxPckVscyIsInN0cmF0ZWd5Iiwic2VsZWN0b3IiLCJtdWx0IiwiY29udGV4dCIsInV0aWwiLCJ1bndyYXBFbGVtZW50IiwiZW5kcG9pbnQiLCJzYWZhcmkiLCJwcm94eSIsImNvbW1hbmQiLCJ1c2luZyIsInZhbHVlIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2ZpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vLyBUaGlzIGlzIG5lZWRlZCB0byBtYWtlIGxvb2t1cCBieSBpbWFnZSB3b3JraW5nXG5jb21tYW5kcy5maW5kRWxPckVscyA9IGFzeW5jIGZ1bmN0aW9uIGZpbmRFbE9yRWxzIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IHV0aWwudW53cmFwRWxlbWVudChjb250ZXh0KTtcbiAgY29uc3QgZW5kcG9pbnQgPSBgL2VsZW1lbnQke2NvbnRleHQgPyBgLyR7Y29udGV4dH0vZWxlbWVudGAgOiAnJ30ke211bHQgPyAncycgOiAnJ31gO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLnNhZmFyaS5wcm94eS5jb21tYW5kKGVuZHBvaW50LCAnUE9TVCcsIHtcbiAgICB1c2luZzogc3RyYXRlZ3ksXG4gICAgdmFsdWU6IHNlbGVjdG9yLFxuICB9KTtcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBR0EsTUFBTUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUFDQyxPQUFBLENBQUFELFFBQUEsR0FBQUEsUUFBQTtBQUdwQkEsUUFBUSxDQUFDRSxXQUFXLEdBQUcsZUFBZUEsV0FBV0EsQ0FBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO0VBQ3BGQSxPQUFPLEdBQUdDLGFBQUksQ0FBQ0MsYUFBYSxDQUFDRixPQUFPLENBQUM7RUFDckMsTUFBTUcsUUFBUSxHQUFJLFdBQVVILE9BQU8sR0FBSSxJQUFHQSxPQUFRLFVBQVMsR0FBRyxFQUFHLEdBQUVELElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRyxFQUFDO0VBRXBGLE9BQU8sTUFBTSxJQUFJLENBQUNLLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNILFFBQVEsRUFBRSxNQUFNLEVBQUU7SUFDdkRJLEtBQUssRUFBRVYsUUFBUTtJQUNmVyxLQUFLLEVBQUVWO0VBQ1QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDLElBQUFXLFFBQUEsR0FJYWYsUUFBUTtBQUFBQyxPQUFBLENBQUFlLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","names":["commands","findElOrEls","strategy","selector","mult","context","util","unwrapElement","endpoint","safari","proxy","command","using","value"],"sources":["../../../lib/commands/find.js"],"sourcesContent":["import { util } from 'appium/support';\n\n\nconst commands = {};\n\n// This is needed to make lookup by image working\ncommands.findElOrEls = async function findElOrEls (strategy, selector, mult, context) {\n context = util.unwrapElement(context);\n const endpoint = `/element${context ? `/${context}/element` : ''}${mult ? 's' : ''}`;\n\n return await this.safari.proxy.command(endpoint, 'POST', {\n using: strategy,\n value: selector,\n });\n};\n\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA;AAGA,
|
|
1
|
+
{"version":3,"file":"find.js","names":["_support","require","commands","exports","findElOrEls","strategy","selector","mult","context","util","unwrapElement","endpoint","safari","proxy","command","using","value","_default","default"],"sources":["../../../lib/commands/find.js"],"sourcesContent":["import { util } from 'appium/support';\n\n\nconst commands = {};\n\n// This is needed to make lookup by image working\ncommands.findElOrEls = async function findElOrEls (strategy, selector, mult, context) {\n context = util.unwrapElement(context);\n const endpoint = `/element${context ? `/${context}/element` : ''}${mult ? 's' : ''}`;\n\n return await this.safari.proxy.command(endpoint, 'POST', {\n using: strategy,\n value: selector,\n });\n};\n\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAGpBA,QAAQ,CAACE,WAAW,GAAG,eAAeA,WAAWA,CAAEC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAE;EACpFA,OAAO,GAAGC,aAAI,CAACC,aAAa,CAACF,OAAO,CAAC;EACrC,MAAMG,QAAQ,GAAI,WAAUH,OAAO,GAAI,IAAGA,OAAQ,UAAS,GAAG,EAAG,GAAED,IAAI,GAAG,GAAG,GAAG,EAAG,EAAC;EAEpF,OAAO,MAAM,IAAI,CAACK,MAAM,CAACC,KAAK,CAACC,OAAO,CAACH,QAAQ,EAAE,MAAM,EAAE;IACvDI,KAAK,EAAEV,QAAQ;IACfW,KAAK,EAAEV;EACT,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAW,QAAA,GAIaf,QAAQ;AAAAC,OAAA,CAAAe,OAAA,GAAAD,QAAA"}
|
|
@@ -14,4 +14,4 @@ exports.commands = commands;
|
|
|
14
14
|
Object.assign(commands, _find.default, _cookies.default, _recordScreen.default);
|
|
15
15
|
var _default = commands;
|
|
16
16
|
exports.default = _default;
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmluZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2Nvb2tpZXMiLCJfcmVjb3JkU2NyZWVuIiwiY29tbWFuZHMiLCJleHBvcnRzIiwiT2JqZWN0IiwiYXNzaWduIiwiZmluZENtZHMiLCJjb29raWVDbWRzIiwicmVjb3JkU2NyZWVuQ29tbWFuZHMiLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbmRDbWRzIGZyb20gJy4vZmluZCc7XG5pbXBvcnQgY29va2llQ21kcyBmcm9tICcuL2Nvb2tpZXMnO1xuaW1wb3J0IHJlY29yZFNjcmVlbkNvbW1hbmRzIGZyb20gJy4vcmVjb3JkLXNjcmVlbic7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5PYmplY3QuYXNzaWduKFxuICBjb21tYW5kcyxcbiAgZmluZENtZHMsXG4gIGNvb2tpZUNtZHMsXG4gIHJlY29yZFNjcmVlbkNvbW1hbmRzLFxuICAvLyBhZGQgb3RoZXIgY29tbWFuZCB0eXBlcyBoZXJlXG4pO1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsYUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTUcsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUFDQyxPQUFBLENBQUFELFFBQUEsR0FBQUEsUUFBQTtBQUNwQkUsTUFBTSxDQUFDQyxNQUFNLENBQ1hILFFBQVEsRUFDUkksYUFBUSxFQUNSQyxnQkFBVSxFQUNWQyxxQkFFRixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUdhUCxRQUFRO0FBQUFDLE9BQUEsQ0FBQU8sT0FBQSxHQUFBRCxRQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["commands","Object","assign","findCmds","cookieCmds","recordScreenCommands"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import findCmds from './find';\nimport cookieCmds from './cookies';\nimport recordScreenCommands from './record-screen';\n\nconst commands = {};\nObject.assign(\n commands,\n findCmds,\n cookieCmds,\n recordScreenCommands,\n // add other command types here\n);\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["_find","_interopRequireDefault","require","_cookies","_recordScreen","commands","exports","Object","assign","findCmds","cookieCmds","recordScreenCommands","_default","default"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import findCmds from './find';\nimport cookieCmds from './cookies';\nimport recordScreenCommands from './record-screen';\n\nconst commands = {};\nObject.assign(\n commands,\n findCmds,\n cookieCmds,\n recordScreenCommands,\n // add other command types here\n);\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,MAAMG,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AACpBE,MAAM,CAACC,MAAM,CACXH,QAAQ,EACRI,aAAQ,EACRC,gBAAU,EACVC,qBAEF,CAAC;AAAC,IAAAC,QAAA,GAGaP,QAAQ;AAAAC,OAAA,CAAAO,OAAA,GAAAD,QAAA"}
|
|
@@ -252,4 +252,4 @@ commands.stopRecordingScreen = async function stopRecordingScreen(options = {})
|
|
|
252
252
|
};
|
|
253
253
|
var _default = commands;
|
|
254
254
|
exports.default = _default;
|
|
255
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsIlNUQVJUVVBfSU5URVJWQUxfTVMiLCJTVEFSVFVQX1RJTUVPVVRfTVMiLCJERUZBVUxUX1RJTUVfTElNSVRfTVMiLCJQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMiLCJERUZBVUxUX0VYVCIsInVwbG9hZFJlY29yZGVkTWVkaWEiLCJsb2NhbEZpbGUiLCJyZW1vdGVQYXRoIiwidXBsb2FkT3B0aW9ucyIsIl8iLCJpc0VtcHR5IiwidXRpbCIsInRvSW5NZW1vcnlCYXNlNjQiLCJ0b1N0cmluZyIsInVzZXIiLCJwYXNzIiwibWV0aG9kIiwiaGVhZGVycyIsImZpbGVGaWVsZE5hbWUiLCJmb3JtRmllbGRzIiwib3B0aW9ucyIsImF1dGgiLCJuZXQiLCJ1cGxvYWRGaWxlIiwiVklERU9fRklMRVMiLCJTZXQiLCJwcm9jZXNzIiwib24iLCJ2aWRlb0ZpbGUiLCJmcyIsInJpbXJhZlN5bmMiLCJpZ24iLCJTY3JlZW5SZWNvcmRlciIsImNvbnN0cnVjdG9yIiwidWRpZCIsInZpZGVvUGF0aCIsImxvZyIsIm9wdHMiLCJfcHJvY2VzcyIsIl91ZGlkIiwiX3ZpZGVvUGF0aCIsIl9jb2RlYyIsImNvZGVjIiwiX2Rpc3BsYXkiLCJkaXNwbGF5IiwiX21hc2siLCJtYXNrIiwiX3RpbWVMaW1pdE1zIiwidGltZUxpbWl0IiwiX3RpbWVyIiwiZ2V0VmlkZW9QYXRoIiwiZXhpc3RzIiwiYWRkIiwiaXNSdW5uaW5nIiwiX2VuZm9yY2VUZXJtaW5hdGlvbiIsImRlYnVnIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIndhaXRGb3JDb25kaXRpb24iLCJFcnJvciIsIndhaXRNcyIsImludGVydmFsTXMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsInNldFRpbWVvdXQiLCJlcnJvciIsImluZm8iLCJmb3JjZSIsImNsZWFyVGltZW91dCIsImV4dHJhY3RTaW11bGF0b3JVZGlkIiwiY2FwcyIsImFsbERldmljZXMiLCJmbGF0TWFwIiwidmFsdWVzIiwiZ2V0RGV2aWNlcyIsIm5hbWUiLCJzdGF0ZSIsInNkayIsInRvTG93ZXIiLCJzdGFydFJlY29yZGluZ1NjcmVlbiIsImZvcmNlUmVzdGFydCIsIl9zY3JlZW5SZWNvcmRlciIsInRlbXBEaXIiLCJwYXRoIiwicHJlZml4IiwidXVpZFY0Iiwic3VmZml4IiwicGFyc2VJbnQiLCJzdG9wUmVjb3JkaW5nU2NyZWVuIiwic2l6ZSIsInN0YXQiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsLCBmcywgbmV0LCB0ZW1wRGlyIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBTaW1jdGwgZnJvbSAnbm9kZS1zaW1jdGwnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmNvbnN0IFNUQVJUVVBfSU5URVJWQUxfTVMgPSAzMDA7XG5jb25zdCBTVEFSVFVQX1RJTUVPVVRfTVMgPSAxMCAqIDEwMDA7XG5jb25zdCBERUZBVUxUX1RJTUVfTElNSVRfTVMgPSA2MCAqIDEwICogMTAwMDsgLy8gMTAgbWludXRlc1xuY29uc3QgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9FWFQgPSAnLm1wNCc7XG5cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkUmVjb3JkZWRNZWRpYSAobG9jYWxGaWxlLCByZW1vdGVQYXRoID0gbnVsbCwgdXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gIGlmIChfLmlzRW1wdHkocmVtb3RlUGF0aCkpIHtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qge3VzZXIsIHBhc3MsIG1ldGhvZCwgaGVhZGVycywgZmlsZUZpZWxkTmFtZSwgZm9ybUZpZWxkc30gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogbWV0aG9kIHx8ICdQVVQnLFxuICAgIGhlYWRlcnMsXG4gICAgZmlsZUZpZWxkTmFtZSxcbiAgICBmb3JtRmllbGRzLFxuICB9O1xuICBpZiAodXNlciAmJiBwYXNzKSB7XG4gICAgb3B0aW9ucy5hdXRoID0ge3VzZXIsIHBhc3N9O1xuICB9XG4gIGF3YWl0IG5ldC51cGxvYWRGaWxlKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCwgb3B0aW9ucyk7XG4gIHJldHVybiAnJztcbn1cblxuY29uc3QgVklERU9fRklMRVMgPSBuZXcgU2V0KCk7XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHZpZGVvRmlsZSBvZiBWSURFT19GSUxFUykge1xuICAgIHRyeSB7XG4gICAgICBmcy5yaW1yYWZTeW5jKHZpZGVvRmlsZSk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2NyZWVuUmVjb3JkZXIge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgdmlkZW9QYXRoLCBsb2csIG9wdHMgPSB7fSkge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIHRoaXMuX3VkaWQgPSB1ZGlkO1xuICAgIHRoaXMuX3ZpZGVvUGF0aCA9IHZpZGVvUGF0aDtcbiAgICB0aGlzLl9jb2RlYyA9IG9wdHMuY29kZWM7XG4gICAgdGhpcy5fZGlzcGxheSA9IG9wdHMuZGlzcGxheTtcbiAgICB0aGlzLl9tYXNrID0gb3B0cy5tYXNrO1xuICAgIHRoaXMuX3RpbWVMaW1pdE1zID0gb3B0cy50aW1lTGltaXQgPiAwID8gb3B0cy50aW1lTGltaXQgKiAxMDAwIDogREVGQVVMVF9USU1FX0xJTUlUX01TO1xuICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldFZpZGVvUGF0aCAoKSB7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyh0aGlzLl92aWRlb1BhdGgpKSB7XG4gICAgICBWSURFT19GSUxFUy5hZGQodGhpcy5fdmlkZW9QYXRoKTtcbiAgICAgIHJldHVybiB0aGlzLl92aWRlb1BhdGg7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhISh0aGlzLl9wcm9jZXNzPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgX2VuZm9yY2VUZXJtaW5hdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnRm9yY2Utc3RvcHBpbmcgdGhlIGN1cnJlbnRseSBydW5uaW5nIHZpZGVvIHJlY29yZGluZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgaWYgKHZpZGVvUGF0aCkge1xuICAgICAgYXdhaXQgZnMucmltcmFmKHZpZGVvUGF0aCk7XG4gICAgICBWSURFT19GSUxFUy5kZWxldGUodmlkZW9QYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQgKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICB0aGlzLl91ZGlkLCAncmVjb3JkVmlkZW8nXG4gICAgXTtcbiAgICBpZiAodGhpcy5fZGlzcGxheSkge1xuICAgICAgYXJncy5wdXNoKCctLWRpc3BsYXknLCB0aGlzLl9kaXNwbGF5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvZGVjKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY29kZWMnLCB0aGlzLl9jb2RlYyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXNrKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbWFzaycsIHRoaXMuX21hc2spO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tZm9yY2UnLCB0aGlzLl92aWRlb1BhdGgpO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBhd2FpdCBuZXcgU2ltY3RsKCkuZXhlYygnaW8nLCB7XG4gICAgICBhcmdzLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyB2aWRlbyByZWNvcmRpbmcgd2l0aCBhcmd1bWVudHM6ICR7dXRpbC5xdW90ZShhcmdzKX1gKTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAobGluZSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgW3JlY29yZFZpZGVvQCR7dGhpcy5fdWRpZC5zdWJzdHJpbmcoMCwgOCl9XSAke2xpbmV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fcHJvY2Vzcy5vbmNlKCdleGl0JywgYXN5bmMgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aG91dCBlcnJvcnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgICB0aGlzLmxvZy53YXJuKGBTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RhcnQoMCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCkpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgICAgaW50ZXJ2YWxNczogU1RBUlRVUF9JTlRFUlZBTF9NUyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGV4cGVjdGVkIHNjcmVlbiByZWNvcmQgZmlsZSAnJHt0aGlzLl92aWRlb1BhdGh9JyBkb2VzIG5vdCBleGlzdCBhZnRlciAke1NUQVJUVVBfVElNRU9VVF9NU31tcy4gYCArXG4gICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgfVxuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgdGhpcy5fdGltZUxpbWl0TXMpO1xuICAgIHRoaXMubG9nLmluZm8oYFRoZSB2aWRlbyByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuIFdpbGwgdGltZW91dCBpbiAke3RoaXMuX3RpbWVMaW1pdE1zfW1zYCk7XG4gIH1cblxuICBhc3luYyBzdG9wIChmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdTY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBydW5uaW5nLiBSZXR1cm5pbmcgdGhlIHJlY2VudGx5IHJlY29yZGVkIHZpZGVvJyk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdJTlQnLCBQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY3JlZW4gcmVjb3JkaW5nIGhhcyBmYWlsZWQgdG8gc3RvcCBhZnRlciAke1BST0NFU1NfU0hVVERPV05fVElNRU9VVF9NU31tc2ApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTaW11bGF0b3JVZGlkIChjYXBzKSB7XG4gIGlmIChjYXBzWydzYWZhcmk6dXNlU2ltdWxhdG9yJ10gPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhbGxEZXZpY2VzID0gXy5mbGF0TWFwKF8udmFsdWVzKGF3YWl0IG5ldyBTaW1jdGwoKS5nZXREZXZpY2VzKG51bGwsICdpT1MnKSkpO1xuICBmb3IgKGNvbnN0IHtuYW1lLCB1ZGlkLCBzdGF0ZSwgc2RrfSBvZiBhbGxEZXZpY2VzKSB7XG4gICAgaWYgKHN0YXRlICE9PSAnQm9vdGVkJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlVURJRCddKSA9PT0gXy50b0xvd2VyKHVkaWQpKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlTmFtZSddKSA9PT0gXy50b0xvd2VyKG5hbWUpICYmXG4gICAgICAoY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddICYmIGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSA9PT0gc2RrXG4gICAgICAgIHx8ICFjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10pKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0UmVjb3JkaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29kZWMgW2hldmNdIC0gU3BlY2lmaWVzIHRoZSBjb2RlYyB0eXBlOiBcImgyNjRcIiBvciBcImhldmNcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBkaXNwbGF5IFtpbnRlcm5hbF0gLSBTdXBwb3J0cyBcImludGVybmFsXCIgb3IgXCJleHRlcm5hbFwiLiBEZWZhdWx0IGlzIFwiaW50ZXJuYWxcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtYXNrIC0gRm9yIG5vbi1yZWN0YW5ndWxhciBkaXNwbGF5cywgaGFuZGxlIHRoZSBtYXNrIGJ5IHBvbGljeTpcbiAqIC0gaWdub3JlZDogVGhlIG1hc2sgaXMgaWdub3JlZCBhbmQgdGhlIHVubWFza2VkIGZyYW1lYnVmZmVyIGlzIHNhdmVkLlxuICogLSBhbHBoYTogTm90IHN1cHBvcnRlZCwgYnV0IHJldGFpbmVkIGZvciBjb21wYXRpYmlsaXR5OyB0aGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIC0gYmxhY2s6IFRoZSBtYXNrIGlzIHJlbmRlcmVkIGJsYWNrLlxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB0aW1lTGltaXQgWzYwMF0gLSBUaGUgbWF4aW11bSByZWNvcmRpbmcgdGltZSwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHRcbiAqIHZhbHVlIGlzIDYwMCBzZWNvbmRzICgxMCBtaW51dGVzKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZm9yY2VSZXN0YXJ0IFt0cnVlXSAtIFdoZXRoZXIgdG8gaWdub3JlIHRoZSBjYWxsIGlmIGEgc2NyZWVuIHJlY29yZGluZyBpcyBjdXJyZW50bHkgcnVubmluZ1xuICogKGBmYWxzZWApIG9yIHRvIHN0YXJ0IGEgbmV3IHJlY29yZGluZyBpbW1lZGlhdGVseSBhbmQgdGVybWluYXRlIHRoZSBleGlzdGluZyBvbmUgaWYgcnVubmluZyAoYHRydWVgKS5cbiAqL1xuXG4vKipcbiAqIFJlY29yZCB0aGUgU2ltdWxhdG9yJ3MgZGlzcGxheSBpbiBiYWNrZ3JvdW5kIHdoaWxlIHRoZSBhdXRvbWF0ZWQgdGVzdCBpcyBydW5uaW5nLlxuICogVGhpcyBtZXRob2QgdXNlcyBgeGNydW4gc2ltY3RsIGlvIHJlY29yZFZpZGVvYCBoZWxwZXIgdW5kZXIgdGhlIGhvb2QuXG4gKiBDaGVjayB0aGUgb3V0cHV0IG9mIGB4Y3J1biBzaW1jdGwgaW9gIGNvbW1hbmQgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0gez9TdGFydFJlY29yZGluZ09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgc2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0YXJ0IG9yIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuXG4gKi9cbmNvbW1hbmRzLnN0YXJ0UmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRSZWNvcmRpbmdTY3JlZW4gKG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZUxpbWl0LFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgICBmb3JjZVJlc3RhcnQgPSB0cnVlLFxuICB9ID0gb3B0aW9ucztcbiAgaWYgKHRoaXMuX3NjcmVlblJlY29yZGVyPy5pc1J1bm5pbmcpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdUaGUgc2NyZWVuIHJlY29yZGluZyBpcyBhbHJlYWR5IHJ1bm5pbmcnKTtcbiAgICBpZiAoIWZvcmNlUmVzdGFydCkge1xuICAgICAgdGhpcy5sb2cuaW5mbygnRG9pbmcgbm90aGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvZy5pbmZvKCdGb3JjaW5nIHRoZSBhY3RpdmUgc2NyZWVuIHJlY29yZGluZyB0byBzdG9wJyk7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCh0cnVlKTtcbiAgfVxuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG5cbiAgY29uc3QgdWRpZCA9IGF3YWl0IGV4dHJhY3RTaW11bGF0b3JVZGlkKHRoaXMuY2Fwcyk7XG4gIGlmICghdWRpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRldGVybWluZSBTaW11bGF0b3IgVURJRCB0byByZWNvcmQgdGhlIHZpZGVvIGZyb20uICcgK1xuICAgICAgJ0RvdWJsZSBjaGVjayB5b3VyIHNlc3Npb24gY2FwYWJpbGl0aWVzJyk7XG4gIH1cblxuICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe1xuICAgIHByZWZpeDogdXRpbC51dWlkVjQoKS5zdWJzdHJpbmcoMCwgOCksXG4gICAgc3VmZml4OiBERUZBVUxUX0VYVCxcbiAgfSk7XG4gIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbmV3IFNjcmVlblJlY29yZGVyKHVkaWQsIHZpZGVvUGF0aCwgdGhpcy5sb2csIHtcbiAgICB0aW1lTGltaXQ6IHBhcnNlSW50KHRpbWVMaW1pdCwgMTApLFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RhcnQoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSByZW1vdGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIHJlbW90ZSBsb2NhdGlvbiwgd2hlcmUgdGhlIHJlc3VsdGluZyB2aWRlbyBzaG91bGQgYmUgdXBsb2FkZWQuXG4gKiBUaGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBodHRwL2h0dHBzLCBmdHAuXG4gKiBOdWxsIG9yIGVtcHR5IHN0cmluZyB2YWx1ZSAodGhlIGRlZmF1bHQgc2V0dGluZykgbWVhbnMgdGhlIGNvbnRlbnQgb2YgcmVzdWx0aW5nXG4gKiBmaWxlIHNob3VsZCBiZSBlbmNvZGVkIGFzIEJhc2U2NCBhbmQgcGFzc2VkIGFzIHRoZSBlbmRwb2ludCByZXNwb25zZSB2YWx1ZS5cbiAqIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgZ2VuZXJhdGVkIG1lZGlhIGZpbGUgaXMgdG9vIGJpZyB0b1xuICogZml0IGludG8gdGhlIGF2YWlsYWJsZSBwcm9jZXNzIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXNlciAtIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXNzIC0gVGhlIHBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtZXRob2QgLSBUaGUgaHR0cCBtdWx0aXBhcnQgdXBsb2FkIG1ldGhvZCBuYW1lLiBUaGUgJ1BVVCcgb25lIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgaGVhZGVycyBtYXBwaW5nIGZvciBtdWx0aXBhcnQgaHR0cChzKSB1cGxvYWRzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQsIHdoZXJlIHRoZSBmaWxlIGNvbnRlbnQgQkxPQiBzaG91bGQgYmUgc3RvcmVkIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/T2JqZWN0fEFycmF5PFBhaXI+fSBmb3JtRmllbGRzIC0gQWRkaXRpb25hbCBmb3JtIGZpZWxkcyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICovXG5cbi8qKlxuICogU3RvcCByZWNvcmRpbmcgdGhlIHNjcmVlbi5cbiAqIElmIG5vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUgdGhlbiB0aGUgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7P1N0b3BSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcmVjb3JkZWQgbWVkaWEgZmlsZSBpZiAncmVtb3RlUGF0aCdcbiAqIHBhcmFtZXRlciBpcyBmYWxzeSBvciBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGdldHRpbmcgdGhlIG5hbWUgb2YgYSBtZWRpYSBmaWxlXG4gKiBvciB0aGUgZmlsZSBjb250ZW50IGNhbm5vdCBiZSB1cGxvYWRlZCB0byB0aGUgcmVtb3RlIGxvY2F0aW9uXG4gKiBvciBzY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICovXG5jb21tYW5kcy5zdG9wUmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RvcFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGlmICghdGhpcy5fc2NyZWVuUmVjb3JkZXIpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdObyBzY3JlZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHN0YXJ0ZWQuIERvaW5nIG5vdGhpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyB0aGUgcmVzdWx0aW5nIHZpZGVvIGRhdGEnKTtcbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCgpO1xuICBpZiAoIXZpZGVvUGF0aCkge1xuICAgIHRoaXMubG9nLmluZm8oJ05vIHZpZGVvIGRhdGEgaXMgZm91bmQuIFJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKF8uaXNFbXB0eShvcHRpb25zLnJlbW90ZVBhdGgpKSB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdCh2aWRlb1BhdGgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgc2l6ZSBvZiB0aGUgcmVzdWx0aW5nIHNjcmVlbiByZWNvcmRpbmcgaXMgJHt1dGlsLnRvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB1cGxvYWRSZWNvcmRlZE1lZGlhKHZpZGVvUGF0aCwgb3B0aW9ucy5yZW1vdGVQYXRoLCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsTUFBTUEsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVuQixNQUFNQyxtQkFBbUIsR0FBRyxHQUFHO0FBQy9CLE1BQU1DLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxJQUFJO0FBQ3BDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtBQUM1QyxNQUFNQywyQkFBMkIsR0FBRyxFQUFFLEdBQUcsSUFBSTtBQUM3QyxNQUFNQyxXQUFXLEdBQUcsTUFBTTtBQUcxQixlQUFlQyxtQkFBbUIsQ0FBRUMsU0FBUyxFQUFFQyxVQUFVLEdBQUcsSUFBSSxFQUFFQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDcEYsSUFBSUMsZUFBQyxDQUFDQyxPQUFPLENBQUNILFVBQVUsQ0FBQyxFQUFFO0lBQ3pCLE9BQU8sQ0FBQyxNQUFNSSxhQUFJLENBQUNDLGdCQUFnQixDQUFDTixTQUFTLENBQUMsRUFBRU8sUUFBUSxFQUFFO0VBQzVEO0VBRUEsTUFBTTtJQUFDQyxJQUFJO0lBQUVDLElBQUk7SUFBRUMsTUFBTTtJQUFFQyxPQUFPO0lBQUVDLGFBQWE7SUFBRUM7RUFBVSxDQUFDLEdBQUdYLGFBQWE7RUFDOUUsTUFBTVksT0FBTyxHQUFHO0lBQ2RKLE1BQU0sRUFBRUEsTUFBTSxJQUFJLEtBQUs7SUFDdkJDLE9BQU87SUFDUEMsYUFBYTtJQUNiQztFQUNGLENBQUM7RUFDRCxJQUFJTCxJQUFJLElBQUlDLElBQUksRUFBRTtJQUNoQkssT0FBTyxDQUFDQyxJQUFJLEdBQUc7TUFBQ1AsSUFBSTtNQUFFQztJQUFJLENBQUM7RUFDN0I7RUFDQSxNQUFNTyxZQUFHLENBQUNDLFVBQVUsQ0FBQ2pCLFNBQVMsRUFBRUMsVUFBVSxFQUFFYSxPQUFPLENBQUM7RUFDcEQsT0FBTyxFQUFFO0FBQ1g7QUFF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
|
|
255
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc3VwcG9ydCIsIl9hc3luY2JveCIsIl9ub2RlU2ltY3RsIiwiY29tbWFuZHMiLCJTVEFSVFVQX0lOVEVSVkFMX01TIiwiU1RBUlRVUF9USU1FT1VUX01TIiwiREVGQVVMVF9USU1FX0xJTUlUX01TIiwiUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TIiwiREVGQVVMVF9FWFQiLCJ1cGxvYWRSZWNvcmRlZE1lZGlhIiwibG9jYWxGaWxlIiwicmVtb3RlUGF0aCIsInVwbG9hZE9wdGlvbnMiLCJfIiwiaXNFbXB0eSIsInV0aWwiLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJ1c2VyIiwicGFzcyIsIm1ldGhvZCIsImhlYWRlcnMiLCJmaWxlRmllbGROYW1lIiwiZm9ybUZpZWxkcyIsIm9wdGlvbnMiLCJhdXRoIiwibmV0IiwidXBsb2FkRmlsZSIsIlZJREVPX0ZJTEVTIiwiU2V0IiwicHJvY2VzcyIsIm9uIiwidmlkZW9GaWxlIiwiZnMiLCJyaW1yYWZTeW5jIiwiaWduIiwiU2NyZWVuUmVjb3JkZXIiLCJjb25zdHJ1Y3RvciIsInVkaWQiLCJ2aWRlb1BhdGgiLCJsb2ciLCJvcHRzIiwiX3Byb2Nlc3MiLCJfdWRpZCIsIl92aWRlb1BhdGgiLCJfY29kZWMiLCJjb2RlYyIsIl9kaXNwbGF5IiwiZGlzcGxheSIsIl9tYXNrIiwibWFzayIsIl90aW1lTGltaXRNcyIsInRpbWVMaW1pdCIsIl90aW1lciIsImdldFZpZGVvUGF0aCIsImV4aXN0cyIsImFkZCIsImlzUnVubmluZyIsIl90aGlzJF9wcm9jZXNzIiwiX2VuZm9yY2VUZXJtaW5hdGlvbiIsImRlYnVnIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIndhaXRGb3JDb25kaXRpb24iLCJFcnJvciIsIndhaXRNcyIsImludGVydmFsTXMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsInNldFRpbWVvdXQiLCJlcnJvciIsImluZm8iLCJmb3JjZSIsImNsZWFyVGltZW91dCIsImV4dHJhY3RTaW11bGF0b3JVZGlkIiwiY2FwcyIsImFsbERldmljZXMiLCJmbGF0TWFwIiwidmFsdWVzIiwiZ2V0RGV2aWNlcyIsIm5hbWUiLCJzdGF0ZSIsInNkayIsInRvTG93ZXIiLCJzdGFydFJlY29yZGluZ1NjcmVlbiIsIl90aGlzJF9zY3JlZW5SZWNvcmRlciIsImZvcmNlUmVzdGFydCIsIl9zY3JlZW5SZWNvcmRlciIsInRlbXBEaXIiLCJwYXRoIiwicHJlZml4IiwidXVpZFY0Iiwic3VmZml4IiwicGFyc2VJbnQiLCJzdG9wUmVjb3JkaW5nU2NyZWVuIiwic2l6ZSIsInN0YXQiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvcmVjb3JkLXNjcmVlbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCwgZnMsIG5ldCwgdGVtcERpciB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgU2ltY3RsIGZyb20gJ25vZGUtc2ltY3RsJztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5jb25zdCBTVEFSVFVQX0lOVEVSVkFMX01TID0gMzAwO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9USU1FX0xJTUlUX01TID0gNjAgKiAxMCAqIDEwMDA7IC8vIDEwIG1pbnV0ZXNcbmNvbnN0IFBST0NFU1NfU0hVVERPV05fVElNRU9VVF9NUyA9IDEwICogMTAwMDtcbmNvbnN0IERFRkFVTFRfRVhUID0gJy5tcDQnO1xuXG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZFJlY29yZGVkTWVkaWEgKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCA9IG51bGwsIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBpZiAoXy5pc0VtcHR5KHJlbW90ZVBhdGgpKSB7XG4gICAgcmV0dXJuIChhd2FpdCB1dGlsLnRvSW5NZW1vcnlCYXNlNjQobG9jYWxGaWxlKSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IHt1c2VyLCBwYXNzLCBtZXRob2QsIGhlYWRlcnMsIGZpbGVGaWVsZE5hbWUsIGZvcm1GaWVsZHN9ID0gdXBsb2FkT3B0aW9ucztcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBtZXRob2Q6IG1ldGhvZCB8fCAnUFVUJyxcbiAgICBoZWFkZXJzLFxuICAgIGZpbGVGaWVsZE5hbWUsXG4gICAgZm9ybUZpZWxkcyxcbiAgfTtcbiAgaWYgKHVzZXIgJiYgcGFzcykge1xuICAgIG9wdGlvbnMuYXV0aCA9IHt1c2VyLCBwYXNzfTtcbiAgfVxuICBhd2FpdCBuZXQudXBsb2FkRmlsZShsb2NhbEZpbGUsIHJlbW90ZVBhdGgsIG9wdGlvbnMpO1xuICByZXR1cm4gJyc7XG59XG5cbmNvbnN0IFZJREVPX0ZJTEVTID0gbmV3IFNldCgpO1xucHJvY2Vzcy5vbignZXhpdCcsICgpID0+IHtcbiAgZm9yIChjb25zdCB2aWRlb0ZpbGUgb2YgVklERU9fRklMRVMpIHtcbiAgICB0cnkge1xuICAgICAgZnMucmltcmFmU3luYyh2aWRlb0ZpbGUpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxufSk7XG5cbmNsYXNzIFNjcmVlblJlY29yZGVyIHtcbiAgY29uc3RydWN0b3IgKHVkaWQsIHZpZGVvUGF0aCwgbG9nLCBvcHRzID0ge30pIHtcbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLl9wcm9jZXNzID0gbnVsbDtcbiAgICB0aGlzLl91ZGlkID0gdWRpZDtcbiAgICB0aGlzLl92aWRlb1BhdGggPSB2aWRlb1BhdGg7XG4gICAgdGhpcy5fY29kZWMgPSBvcHRzLmNvZGVjO1xuICAgIHRoaXMuX2Rpc3BsYXkgPSBvcHRzLmRpc3BsYXk7XG4gICAgdGhpcy5fbWFzayA9IG9wdHMubWFzaztcbiAgICB0aGlzLl90aW1lTGltaXRNcyA9IG9wdHMudGltZUxpbWl0ID4gMCA/IG9wdHMudGltZUxpbWl0ICogMTAwMCA6IERFRkFVTFRfVElNRV9MSU1JVF9NUztcbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gIH1cblxuICBhc3luYyBnZXRWaWRlb1BhdGggKCkge1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHModGhpcy5fdmlkZW9QYXRoKSkge1xuICAgICAgVklERU9fRklMRVMuYWRkKHRoaXMuX3ZpZGVvUGF0aCk7XG4gICAgICByZXR1cm4gdGhpcy5fdmlkZW9QYXRoO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5fcHJvY2Vzcz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIF9lbmZvcmNlVGVybWluYXRpb24gKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ0ZvcmNlLXN0b3BwaW5nIHRoZSBjdXJyZW50bHkgcnVubmluZyB2aWRlbyByZWNvcmRpbmcnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RvcCgnU0lHS0lMTCcpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH1cbiAgICB0aGlzLl9wcm9jZXNzID0gbnVsbDtcbiAgICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpO1xuICAgIGlmICh2aWRlb1BhdGgpIHtcbiAgICAgIGF3YWl0IGZzLnJpbXJhZih2aWRlb1BhdGgpO1xuICAgICAgVklERU9fRklMRVMuZGVsZXRlKHZpZGVvUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0ICgpIHtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgdGhpcy5fdWRpZCwgJ3JlY29yZFZpZGVvJ1xuICAgIF07XG4gICAgaWYgKHRoaXMuX2Rpc3BsYXkpIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1kaXNwbGF5JywgdGhpcy5fZGlzcGxheSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jb2RlYykge1xuICAgICAgYXJncy5wdXNoKCctLWNvZGVjJywgdGhpcy5fY29kZWMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbWFzaykge1xuICAgICAgYXJncy5wdXNoKCctLW1hc2snLCB0aGlzLl9tYXNrKTtcbiAgICB9XG4gICAgYXJncy5wdXNoKCctLWZvcmNlJywgdGhpcy5fdmlkZW9QYXRoKTtcbiAgICB0aGlzLl9wcm9jZXNzID0gYXdhaXQgbmV3IFNpbWN0bCgpLmV4ZWMoJ2lvJywge1xuICAgICAgYXJncyxcbiAgICAgIGFzeW5jaHJvbm91czogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgU3RhcnRpbmcgdmlkZW8gcmVjb3JkaW5nIHdpdGggYXJndW1lbnRzOiAke3V0aWwucXVvdGUoYXJncyl9YCk7XG4gICAgdGhpcy5fcHJvY2Vzcy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICBjb25zdCBsaW5lID0gXy50cmltKHN0ZG91dCB8fCBzdGRlcnIpO1xuICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYFtyZWNvcmRWaWRlb0Ake3RoaXMuX3VkaWQuc3Vic3RyaW5nKDAsIDgpfV0gJHtsaW5lfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX3Byb2Nlc3Mub25jZSgnZXhpdCcsIGFzeW5jIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ1NjcmVlbiByZWNvcmRpbmcgZXhpdGVkIHdpdGhvdXQgZXJyb3JzJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgICAgdGhpcy5sb2cud2FybihgU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLl9wcm9jZXNzLnN0YXJ0KDApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUnVubmluZykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIShhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpKTtcbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICAgIGludGVydmFsTXM6IFNUQVJUVVBfSU5URVJWQUxfTVMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBleHBlY3RlZCBzY3JlZW4gcmVjb3JkIGZpbGUgJyR7dGhpcy5fdmlkZW9QYXRofScgZG9lcyBub3QgZXhpc3QgYWZ0ZXIgJHtTVEFSVFVQX1RJTUVPVVRfTVN9bXMuIGAgK1xuICAgICAgICBgQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlsc2ApO1xuICAgIH1cbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHRoaXMuX3RpbWVMaW1pdE1zKTtcbiAgICB0aGlzLmxvZy5pbmZvKGBUaGUgdmlkZW8gcmVjb3JkaW5nIGhhcyBzdGFydGVkLiBXaWxsIHRpbWVvdXQgaW4gJHt0aGlzLl90aW1lTGltaXRNc31tc2ApO1xuICB9XG5cbiAgYXN5bmMgc3RvcCAoZm9yY2UgPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLl90aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcbiAgICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZm9yY2UpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBpcyBub3QgcnVubmluZy4gUmV0dXJuaW5nIHRoZSByZWNlbnRseSByZWNvcmRlZCB2aWRlbycpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RvcCgnU0lHSU5UJywgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9lbmZvcmNlVGVybWluYXRpb24oKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0b3AgYWZ0ZXIgJHtQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVN9bXNgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0U2ltdWxhdG9yVWRpZCAoY2Fwcykge1xuICBpZiAoY2Fwc1snc2FmYXJpOnVzZVNpbXVsYXRvciddID09PSBmYWxzZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYWxsRGV2aWNlcyA9IF8uZmxhdE1hcChfLnZhbHVlcyhhd2FpdCBuZXcgU2ltY3RsKCkuZ2V0RGV2aWNlcyhudWxsLCAnaU9TJykpKTtcbiAgZm9yIChjb25zdCB7bmFtZSwgdWRpZCwgc3RhdGUsIHNka30gb2YgYWxsRGV2aWNlcykge1xuICAgIGlmIChzdGF0ZSAhPT0gJ0Jvb3RlZCcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZVVESUQnXSkgPT09IF8udG9Mb3dlcih1ZGlkKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICAgIGlmIChfLnRvTG93ZXIoY2Fwc1snc2FmYXJpOmRldmljZU5hbWUnXSkgPT09IF8udG9Mb3dlcihuYW1lKSAmJlxuICAgICAgKGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSAmJiBjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10gPT09IHNka1xuICAgICAgICB8fCAhY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddKSkge1xuICAgICAgcmV0dXJuIHVkaWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFJlY29yZGluZ09wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGNvZGVjIFtoZXZjXSAtIFNwZWNpZmllcyB0aGUgY29kZWMgdHlwZTogXCJoMjY0XCIgb3IgXCJoZXZjXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZGlzcGxheSBbaW50ZXJuYWxdIC0gU3VwcG9ydHMgXCJpbnRlcm5hbFwiIG9yIFwiZXh0ZXJuYWxcIi4gRGVmYXVsdCBpcyBcImludGVybmFsXCJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWFzayAtIEZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMsIGhhbmRsZSB0aGUgbWFzayBieSBwb2xpY3k6XG4gKiAtIGlnbm9yZWQ6IFRoZSBtYXNrIGlzIGlnbm9yZWQgYW5kIHRoZSB1bm1hc2tlZCBmcmFtZWJ1ZmZlciBpcyBzYXZlZC5cbiAqIC0gYWxwaGE6IE5vdCBzdXBwb3J0ZWQsIGJ1dCByZXRhaW5lZCBmb3IgY29tcGF0aWJpbGl0eTsgdGhlIG1hc2sgaXMgcmVuZGVyZWQgYmxhY2suXG4gKiAtIGJsYWNrOiBUaGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bWJlcn0gdGltZUxpbWl0IFs2MDBdIC0gVGhlIG1heGltdW0gcmVjb3JkaW5nIHRpbWUsIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0XG4gKiB2YWx1ZSBpcyA2MDAgc2Vjb25kcyAoMTAgbWludXRlcykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGZvcmNlUmVzdGFydCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIGlnbm9yZSB0aGUgY2FsbCBpZiBhIHNjcmVlbiByZWNvcmRpbmcgaXMgY3VycmVudGx5IHJ1bm5pbmdcbiAqIChgZmFsc2VgKSBvciB0byBzdGFydCBhIG5ldyByZWNvcmRpbmcgaW1tZWRpYXRlbHkgYW5kIHRlcm1pbmF0ZSB0aGUgZXhpc3Rpbmcgb25lIGlmIHJ1bm5pbmcgKGB0cnVlYCkuXG4gKi9cblxuLyoqXG4gKiBSZWNvcmQgdGhlIFNpbXVsYXRvcidzIGRpc3BsYXkgaW4gYmFja2dyb3VuZCB3aGlsZSB0aGUgYXV0b21hdGVkIHRlc3QgaXMgcnVubmluZy5cbiAqIFRoaXMgbWV0aG9kIHVzZXMgYHhjcnVuIHNpbWN0bCBpbyByZWNvcmRWaWRlb2AgaGVscGVyIHVuZGVyIHRoZSBob29kLlxuICogQ2hlY2sgdGhlIG91dHB1dCBvZiBgeGNydW4gc2ltY3RsIGlvYCBjb21tYW5kIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHs/U3RhcnRSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHRocm93cyB7RXJyb3J9IElmIHNjcmVlbiByZWNvcmRpbmcgaGFzIGZhaWxlZCB0byBzdGFydCBvciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZGVzdGluYXRpb24gZGV2aWNlLlxuICovXG5jb21tYW5kcy5zdGFydFJlY29yZGluZ1NjcmVlbiA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UmVjb3JkaW5nU2NyZWVuIChvcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHRpbWVMaW1pdCxcbiAgICBjb2RlYyxcbiAgICBkaXNwbGF5LFxuICAgIG1hc2ssXG4gICAgZm9yY2VSZXN0YXJ0ID0gdHJ1ZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICh0aGlzLl9zY3JlZW5SZWNvcmRlcj8uaXNSdW5uaW5nKSB7XG4gICAgdGhpcy5sb2cuaW5mbygnVGhlIHNjcmVlbiByZWNvcmRpbmcgaXMgYWxyZWFkeSBydW5uaW5nJyk7XG4gICAgaWYgKCFmb3JjZVJlc3RhcnQpIHtcbiAgICAgIHRoaXMubG9nLmluZm8oJ0RvaW5nIG5vdGhpbmcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2cuaW5mbygnRm9yY2luZyB0aGUgYWN0aXZlIHNjcmVlbiByZWNvcmRpbmcgdG8gc3RvcCcpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0b3AodHJ1ZSk7XG4gIH1cbiAgdGhpcy5fc2NyZWVuUmVjb3JkZXIgPSBudWxsO1xuXG4gIGNvbnN0IHVkaWQgPSBhd2FpdCBleHRyYWN0U2ltdWxhdG9yVWRpZCh0aGlzLmNhcHMpO1xuICBpZiAoIXVkaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZXRlcm1pbmUgU2ltdWxhdG9yIFVESUQgdG8gcmVjb3JkIHRoZSB2aWRlbyBmcm9tLiAnICtcbiAgICAgICdEb3VibGUgY2hlY2sgeW91ciBzZXNzaW9uIGNhcGFiaWxpdGllcycpO1xuICB9XG5cbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGVtcERpci5wYXRoKHtcbiAgICBwcmVmaXg6IHV0aWwudXVpZFY0KCkuc3Vic3RyaW5nKDAsIDgpLFxuICAgIHN1ZmZpeDogREVGQVVMVF9FWFQsXG4gIH0pO1xuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG5ldyBTY3JlZW5SZWNvcmRlcih1ZGlkLCB2aWRlb1BhdGgsIHRoaXMubG9nLCB7XG4gICAgdGltZUxpbWl0OiBwYXJzZUludCh0aW1lTGltaXQsIDEwKSxcbiAgICBjb2RlYyxcbiAgICBkaXNwbGF5LFxuICAgIG1hc2ssXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0YXJ0KCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG4gICAgdGhyb3cgZTtcbiAgfVxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdG9wUmVjb3JkaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcmVtb3RlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSByZW1vdGUgbG9jYXRpb24sIHdoZXJlIHRoZSByZXN1bHRpbmcgdmlkZW8gc2hvdWxkIGJlIHVwbG9hZGVkLlxuICogVGhlIGZvbGxvd2luZyBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZDogaHR0cC9odHRwcywgZnRwLlxuICogTnVsbCBvciBlbXB0eSBzdHJpbmcgdmFsdWUgKHRoZSBkZWZhdWx0IHNldHRpbmcpIG1lYW5zIHRoZSBjb250ZW50IG9mIHJlc3VsdGluZ1xuICogZmlsZSBzaG91bGQgYmUgZW5jb2RlZCBhcyBCYXNlNjQgYW5kIHBhc3NlZCBhcyB0aGUgZW5kcG9pbnQgcmVzcG9uc2UgdmFsdWUuXG4gKiBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgdGhlIGdlbmVyYXRlZCBtZWRpYSBmaWxlIGlzIHRvbyBiaWcgdG9cbiAqIGZpdCBpbnRvIHRoZSBhdmFpbGFibGUgcHJvY2VzcyBtZW1vcnkuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVzZXIgLSBUaGUgbmFtZSBvZiB0aGUgdXNlciBmb3IgdGhlIHJlbW90ZSBhdXRoZW50aWNhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgdGhlIHJlbW90ZSBhdXRoZW50aWNhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWV0aG9kIC0gVGhlIGh0dHAgbXVsdGlwYXJ0IHVwbG9hZCBtZXRob2QgbmFtZS4gVGhlICdQVVQnIG9uZSBpcyB1c2VkIGJ5IGRlZmF1bHQuXG4gKiBAcHJvcGVydHkgez9PYmplY3R9IGhlYWRlcnMgLSBBZGRpdGlvbmFsIGhlYWRlcnMgbWFwcGluZyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBmaWxlRmllbGROYW1lIFtmaWxlXSAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGZpZWxkLCB3aGVyZSB0aGUgZmlsZSBjb250ZW50IEJMT0Igc2hvdWxkIGJlIHN0b3JlZCBmb3JcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwKHMpIHVwbG9hZHNcbiAqIEBwcm9wZXJ0eSB7P09iamVjdHxBcnJheTxQYWlyPn0gZm9ybUZpZWxkcyAtIEFkZGl0aW9uYWwgZm9ybSBmaWVsZHMgZm9yIG11bHRpcGFydCBodHRwKHMpIHVwbG9hZHNcbiAqL1xuXG4vKipcbiAqIFN0b3AgcmVjb3JkaW5nIHRoZSBzY3JlZW4uXG4gKiBJZiBubyBzY3JlZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlIHRoZW4gdGhlIG1ldGhvZCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gez9TdG9wUmVjb3JkaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHJlY29yZGVkIG1lZGlhIGZpbGUgaWYgJ3JlbW90ZVBhdGgnXG4gKiBwYXJhbWV0ZXIgaXMgZmFsc3kgb3IgYW4gZW1wdHkgc3RyaW5nLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBnZXR0aW5nIHRoZSBuYW1lIG9mIGEgbWVkaWEgZmlsZVxuICogb3IgdGhlIGZpbGUgY29udGVudCBjYW5ub3QgYmUgdXBsb2FkZWQgdG8gdGhlIHJlbW90ZSBsb2NhdGlvblxuICogb3Igc2NyZWVuIHJlY29yZGluZyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBkZXZpY2UgdW5kZXIgdGVzdC5cbiAqL1xuY29tbWFuZHMuc3RvcFJlY29yZGluZ1NjcmVlbiA9IGFzeW5jIGZ1bmN0aW9uIHN0b3BSZWNvcmRpbmdTY3JlZW4gKG9wdGlvbnMgPSB7fSkge1xuICBpZiAoIXRoaXMuX3NjcmVlblJlY29yZGVyKSB7XG4gICAgdGhpcy5sb2cuaW5mbygnTm8gc2NyZWVuIHJlY29yZGluZyBoYXMgYmVlbiBzdGFydGVkLiBEb2luZyBub3RoaW5nJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgdGhlIHJlc3VsdGluZyB2aWRlbyBkYXRhJyk7XG4gIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyLnN0b3AoKTtcbiAgaWYgKCF2aWRlb1BhdGgpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdObyB2aWRlbyBkYXRhIGlzIGZvdW5kLiBSZXR1cm5pbmcgYW4gZW1wdHkgc3RyaW5nJyk7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChfLmlzRW1wdHkob3B0aW9ucy5yZW1vdGVQYXRoKSkge1xuICAgIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQodmlkZW9QYXRoKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgVGhlIHNpemUgb2YgdGhlIHJlc3VsdGluZyBzY3JlZW4gcmVjb3JkaW5nIGlzICR7dXRpbC50b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX1gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdXBsb2FkUmVjb3JkZWRNZWRpYSh2aWRlb1BhdGgsIG9wdGlvbnMucmVtb3RlUGF0aCwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxNQUFNSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRW5CLE1BQU1DLG1CQUFtQixHQUFHLEdBQUc7QUFDL0IsTUFBTUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUk7QUFDcEMsTUFBTUMscUJBQXFCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0FBQzVDLE1BQU1DLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJO0FBQzdDLE1BQU1DLFdBQVcsR0FBRyxNQUFNO0FBRzFCLGVBQWVDLG1CQUFtQkEsQ0FBRUMsU0FBUyxFQUFFQyxVQUFVLEdBQUcsSUFBSSxFQUFFQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDcEYsSUFBSUMsZUFBQyxDQUFDQyxPQUFPLENBQUNILFVBQVUsQ0FBQyxFQUFFO0lBQ3pCLE9BQU8sQ0FBQyxNQUFNSSxhQUFJLENBQUNDLGdCQUFnQixDQUFDTixTQUFTLENBQUMsRUFBRU8sUUFBUSxDQUFDLENBQUM7RUFDNUQ7RUFFQSxNQUFNO0lBQUNDLElBQUk7SUFBRUMsSUFBSTtJQUFFQyxNQUFNO0lBQUVDLE9BQU87SUFBRUMsYUFBYTtJQUFFQztFQUFVLENBQUMsR0FBR1gsYUFBYTtFQUM5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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-screen.js","names":["commands","STARTUP_INTERVAL_MS","STARTUP_TIMEOUT_MS","DEFAULT_TIME_LIMIT_MS","PROCESS_SHUTDOWN_TIMEOUT_MS","DEFAULT_EXT","uploadRecordedMedia","localFile","remotePath","uploadOptions","_","isEmpty","util","toInMemoryBase64","toString","user","pass","method","headers","fileFieldName","formFields","options","auth","net","uploadFile","VIDEO_FILES","Set","process","on","videoFile","fs","rimrafSync","ign","ScreenRecorder","constructor","udid","videoPath","log","opts","_process","_udid","_videoPath","_codec","codec","_display","display","_mask","mask","_timeLimitMs","timeLimit","_timer","getVideoPath","exists","add","isRunning","_enforceTermination","debug","stop","rimraf","delete","start","args","push","Simctl","exec","asynchronous","quote","stdout","stderr","line","trim","substring","once","code","signal","warn","waitForCondition","Error","waitMs","intervalMs","e","errorAndThrow","setTimeout","error","info","force","clearTimeout","extractSimulatorUdid","caps","allDevices","flatMap","values","getDevices","name","state","sdk","toLower","startRecordingScreen","forceRestart","_screenRecorder","tempDir","path","prefix","uuidV4","suffix","parseInt","stopRecordingScreen","size","stat","toReadableSizeString"],"sources":["../../../lib/commands/record-screen.js"],"sourcesContent":["import _ from 'lodash';\nimport { util, fs, net, tempDir } from 'appium/support';\nimport { waitForCondition } from 'asyncbox';\nimport Simctl from 'node-simctl';\n\n\nconst commands = {};\n\nconst STARTUP_INTERVAL_MS = 300;\nconst STARTUP_TIMEOUT_MS = 10 * 1000;\nconst DEFAULT_TIME_LIMIT_MS = 60 * 10 * 1000; // 10 minutes\nconst PROCESS_SHUTDOWN_TIMEOUT_MS = 10 * 1000;\nconst DEFAULT_EXT = '.mp4';\n\n\nasync function uploadRecordedMedia (localFile, remotePath = null, uploadOptions = {}) {\n if (_.isEmpty(remotePath)) {\n return (await util.toInMemoryBase64(localFile)).toString();\n }\n\n const {user, pass, method, headers, fileFieldName, formFields} = uploadOptions;\n const options = {\n method: method || 'PUT',\n headers,\n fileFieldName,\n formFields,\n };\n if (user && pass) {\n options.auth = {user, pass};\n }\n await net.uploadFile(localFile, remotePath, options);\n return '';\n}\n\nconst VIDEO_FILES = new Set();\nprocess.on('exit', () => {\n for (const videoFile of VIDEO_FILES) {\n try {\n fs.rimrafSync(videoFile);\n } catch (ign) {}\n }\n});\n\nclass ScreenRecorder {\n constructor (udid, videoPath, log, opts = {}) {\n this.log = log;\n this._process = null;\n this._udid = udid;\n this._videoPath = videoPath;\n this._codec = opts.codec;\n this._display = opts.display;\n this._mask = opts.mask;\n this._timeLimitMs = opts.timeLimit > 0 ? opts.timeLimit * 1000 : DEFAULT_TIME_LIMIT_MS;\n this._timer = null;\n }\n\n async getVideoPath () {\n if (await fs.exists(this._videoPath)) {\n VIDEO_FILES.add(this._videoPath);\n return this._videoPath;\n }\n return '';\n }\n\n get isRunning () {\n return !!(this._process?.isRunning);\n }\n\n async _enforceTermination () {\n if (this.isRunning) {\n this.log.debug('Force-stopping the currently running video recording');\n try {\n await this._process.stop('SIGKILL');\n } catch (ign) {}\n }\n this._process = null;\n const videoPath = await this.getVideoPath();\n if (videoPath) {\n await fs.rimraf(videoPath);\n VIDEO_FILES.delete(videoPath);\n }\n return '';\n }\n\n async start () {\n const args = [\n this._udid, 'recordVideo'\n ];\n if (this._display) {\n args.push('--display', this._display);\n }\n if (this._codec) {\n args.push('--codec', this._codec);\n }\n if (this._mask) {\n args.push('--mask', this._mask);\n }\n args.push('--force', this._videoPath);\n this._process = await new Simctl().exec('io', {\n args,\n asynchronous: true,\n });\n this.log.debug(`Starting video recording with arguments: ${util.quote(args)}`);\n this._process.on('output', (stdout, stderr) => {\n const line = _.trim(stdout || stderr);\n if (line) {\n this.log.debug(`[recordVideo@${this._udid.substring(0, 8)}] ${line}`);\n }\n });\n this._process.once('exit', async (code, signal) => {\n this._process = null;\n if (code === 0) {\n this.log.debug('Screen recording exited without errors');\n } else {\n await this._enforceTermination();\n this.log.warn(`Screen recording exited with error code ${code}, signal ${signal}`);\n }\n });\n await this._process.start(0);\n try {\n await waitForCondition(async () => {\n if (!this.isRunning) {\n throw new Error();\n }\n return !!(await this.getVideoPath());\n }, {\n waitMs: STARTUP_TIMEOUT_MS,\n intervalMs: STARTUP_INTERVAL_MS,\n });\n } catch (e) {\n await this._enforceTermination();\n this.log.errorAndThrow(`The expected screen record file '${this._videoPath}' does not exist after ${STARTUP_TIMEOUT_MS}ms. ` +\n `Check the server log for more details`);\n }\n this._timer = setTimeout(async () => {\n if (this.isRunning) {\n try {\n await this.stop();\n } catch (e) {\n this.log.error(e);\n }\n }\n }, this._timeLimitMs);\n this.log.info(`The video recording has started. Will timeout in ${this._timeLimitMs}ms`);\n }\n\n async stop (force = false) {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n\n if (force) {\n return await this._enforceTermination();\n }\n\n if (!this.isRunning) {\n this.log.debug('Screen recording is not running. Returning the recently recorded video');\n return await this.getVideoPath();\n }\n\n try {\n await this._process.stop('SIGINT', PROCESS_SHUTDOWN_TIMEOUT_MS);\n } catch (e) {\n await this._enforceTermination();\n throw new Error(`Screen recording has failed to stop after ${PROCESS_SHUTDOWN_TIMEOUT_MS}ms`);\n }\n\n return await this.getVideoPath();\n }\n}\n\nasync function extractSimulatorUdid (caps) {\n if (caps['safari:useSimulator'] === false) {\n return null;\n }\n\n const allDevices = _.flatMap(_.values(await new Simctl().getDevices(null, 'iOS')));\n for (const {name, udid, state, sdk} of allDevices) {\n if (state !== 'Booted') {\n continue;\n }\n\n if (_.toLower(caps['safari:deviceUDID']) === _.toLower(udid)) {\n return udid;\n }\n if (_.toLower(caps['safari:deviceName']) === _.toLower(name) &&\n (caps['safari:platformVersion'] && caps['safari:platformVersion'] === sdk\n || !caps['safari:platformVersion'])) {\n return udid;\n }\n }\n\n return null;\n}\n\n\n/**\n * @typedef {Object} StartRecordingOptions\n *\n * @property {?string} codec [hevc] - Specifies the codec type: \"h264\" or \"hevc\"\n * @property {?string} display [internal] - Supports \"internal\" or \"external\". Default is \"internal\"\n * @property {?string} mask - For non-rectangular displays, handle the mask by policy:\n * - ignored: The mask is ignored and the unmasked framebuffer is saved.\n * - alpha: Not supported, but retained for compatibility; the mask is rendered black.\n * - black: The mask is rendered black.\n * @property {string|number} timeLimit [600] - The maximum recording time, in seconds. The default\n * value is 600 seconds (10 minutes).\n * @property {boolean} forceRestart [true] - Whether to ignore the call if a screen recording is currently running\n * (`false`) or to start a new recording immediately and terminate the existing one if running (`true`).\n */\n\n/**\n * Record the Simulator's display in background while the automated test is running.\n * This method uses `xcrun simctl io recordVideo` helper under the hood.\n * Check the output of `xcrun simctl io` command for more details.\n *\n * @param {?StartRecordingOptions} options - The available options.\n * @throws {Error} If screen recording has failed to start or is not supported for the destination device.\n */\ncommands.startRecordingScreen = async function startRecordingScreen (options = {}) {\n const {\n timeLimit,\n codec,\n display,\n mask,\n forceRestart = true,\n } = options;\n if (this._screenRecorder?.isRunning) {\n this.log.info('The screen recording is already running');\n if (!forceRestart) {\n this.log.info('Doing nothing');\n return;\n }\n this.log.info('Forcing the active screen recording to stop');\n await this._screenRecorder.stop(true);\n }\n this._screenRecorder = null;\n\n const udid = await extractSimulatorUdid(this.caps);\n if (!udid) {\n throw new Error('Cannot determine Simulator UDID to record the video from. ' +\n 'Double check your session capabilities');\n }\n\n const videoPath = await tempDir.path({\n prefix: util.uuidV4().substring(0, 8),\n suffix: DEFAULT_EXT,\n });\n this._screenRecorder = new ScreenRecorder(udid, videoPath, this.log, {\n timeLimit: parseInt(timeLimit, 10),\n codec,\n display,\n mask,\n });\n try {\n await this._screenRecorder.start();\n } catch (e) {\n this._screenRecorder = null;\n throw e;\n }\n};\n\n/**\n * @typedef {Object} StopRecordingOptions\n *\n * @property {?string} remotePath - The path to the remote location, where the resulting video should be uploaded.\n * The following protocols are supported: http/https, ftp.\n * Null or empty string value (the default setting) means the content of resulting\n * file should be encoded as Base64 and passed as the endpoint response value.\n * An exception will be thrown if the generated media file is too big to\n * fit into the available process memory.\n * @property {?string} user - The name of the user for the remote authentication.\n * @property {?string} pass - The password for the remote authentication.\n * @property {?string} method - The http multipart upload method name. The 'PUT' one is used by default.\n * @property {?Object} headers - Additional headers mapping for multipart http(s) uploads\n * @property {?string} fileFieldName [file] - The name of the form field, where the file content BLOB should be stored for\n * http(s) uploads\n * @property {?Object|Array<Pair>} formFields - Additional form fields for multipart http(s) uploads\n */\n\n/**\n * Stop recording the screen.\n * If no screen recording has been started before then the method returns an empty string.\n *\n * @param {?StopRecordingOptions} options - The available options.\n * @returns {string} Base64-encoded content of the recorded media file if 'remotePath'\n * parameter is falsy or an empty string.\n * @throws {Error} If there was an error while getting the name of a media file\n * or the file content cannot be uploaded to the remote location\n * or screen recording is not supported on the device under test.\n */\ncommands.stopRecordingScreen = async function stopRecordingScreen (options = {}) {\n if (!this._screenRecorder) {\n this.log.info('No screen recording has been started. Doing nothing');\n return '';\n }\n\n this.log.debug('Retrieving the resulting video data');\n const videoPath = await this._screenRecorder.stop();\n if (!videoPath) {\n this.log.info('No video data is found. Returning an empty string');\n return '';\n }\n if (_.isEmpty(options.remotePath)) {\n const {size} = await fs.stat(videoPath);\n this.log.debug(`The size of the resulting screen recording is ${util.toReadableSizeString(size)}`);\n }\n return await uploadRecordedMedia(videoPath, options.remotePath, options);\n};\n\nexport default commands;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record-screen.js","names":["_lodash","_interopRequireDefault","require","_support","_asyncbox","_nodeSimctl","commands","STARTUP_INTERVAL_MS","STARTUP_TIMEOUT_MS","DEFAULT_TIME_LIMIT_MS","PROCESS_SHUTDOWN_TIMEOUT_MS","DEFAULT_EXT","uploadRecordedMedia","localFile","remotePath","uploadOptions","_","isEmpty","util","toInMemoryBase64","toString","user","pass","method","headers","fileFieldName","formFields","options","auth","net","uploadFile","VIDEO_FILES","Set","process","on","videoFile","fs","rimrafSync","ign","ScreenRecorder","constructor","udid","videoPath","log","opts","_process","_udid","_videoPath","_codec","codec","_display","display","_mask","mask","_timeLimitMs","timeLimit","_timer","getVideoPath","exists","add","isRunning","_this$_process","_enforceTermination","debug","stop","rimraf","delete","start","args","push","Simctl","exec","asynchronous","quote","stdout","stderr","line","trim","substring","once","code","signal","warn","waitForCondition","Error","waitMs","intervalMs","e","errorAndThrow","setTimeout","error","info","force","clearTimeout","extractSimulatorUdid","caps","allDevices","flatMap","values","getDevices","name","state","sdk","toLower","startRecordingScreen","_this$_screenRecorder","forceRestart","_screenRecorder","tempDir","path","prefix","uuidV4","suffix","parseInt","stopRecordingScreen","size","stat","toReadableSizeString","_default","exports","default"],"sources":["../../../lib/commands/record-screen.js"],"sourcesContent":["import _ from 'lodash';\nimport { util, fs, net, tempDir } from 'appium/support';\nimport { waitForCondition } from 'asyncbox';\nimport Simctl from 'node-simctl';\n\n\nconst commands = {};\n\nconst STARTUP_INTERVAL_MS = 300;\nconst STARTUP_TIMEOUT_MS = 10 * 1000;\nconst DEFAULT_TIME_LIMIT_MS = 60 * 10 * 1000; // 10 minutes\nconst PROCESS_SHUTDOWN_TIMEOUT_MS = 10 * 1000;\nconst DEFAULT_EXT = '.mp4';\n\n\nasync function uploadRecordedMedia (localFile, remotePath = null, uploadOptions = {}) {\n if (_.isEmpty(remotePath)) {\n return (await util.toInMemoryBase64(localFile)).toString();\n }\n\n const {user, pass, method, headers, fileFieldName, formFields} = uploadOptions;\n const options = {\n method: method || 'PUT',\n headers,\n fileFieldName,\n formFields,\n };\n if (user && pass) {\n options.auth = {user, pass};\n }\n await net.uploadFile(localFile, remotePath, options);\n return '';\n}\n\nconst VIDEO_FILES = new Set();\nprocess.on('exit', () => {\n for (const videoFile of VIDEO_FILES) {\n try {\n fs.rimrafSync(videoFile);\n } catch (ign) {}\n }\n});\n\nclass ScreenRecorder {\n constructor (udid, videoPath, log, opts = {}) {\n this.log = log;\n this._process = null;\n this._udid = udid;\n this._videoPath = videoPath;\n this._codec = opts.codec;\n this._display = opts.display;\n this._mask = opts.mask;\n this._timeLimitMs = opts.timeLimit > 0 ? opts.timeLimit * 1000 : DEFAULT_TIME_LIMIT_MS;\n this._timer = null;\n }\n\n async getVideoPath () {\n if (await fs.exists(this._videoPath)) {\n VIDEO_FILES.add(this._videoPath);\n return this._videoPath;\n }\n return '';\n }\n\n get isRunning () {\n return !!(this._process?.isRunning);\n }\n\n async _enforceTermination () {\n if (this.isRunning) {\n this.log.debug('Force-stopping the currently running video recording');\n try {\n await this._process.stop('SIGKILL');\n } catch (ign) {}\n }\n this._process = null;\n const videoPath = await this.getVideoPath();\n if (videoPath) {\n await fs.rimraf(videoPath);\n VIDEO_FILES.delete(videoPath);\n }\n return '';\n }\n\n async start () {\n const args = [\n this._udid, 'recordVideo'\n ];\n if (this._display) {\n args.push('--display', this._display);\n }\n if (this._codec) {\n args.push('--codec', this._codec);\n }\n if (this._mask) {\n args.push('--mask', this._mask);\n }\n args.push('--force', this._videoPath);\n this._process = await new Simctl().exec('io', {\n args,\n asynchronous: true,\n });\n this.log.debug(`Starting video recording with arguments: ${util.quote(args)}`);\n this._process.on('output', (stdout, stderr) => {\n const line = _.trim(stdout || stderr);\n if (line) {\n this.log.debug(`[recordVideo@${this._udid.substring(0, 8)}] ${line}`);\n }\n });\n this._process.once('exit', async (code, signal) => {\n this._process = null;\n if (code === 0) {\n this.log.debug('Screen recording exited without errors');\n } else {\n await this._enforceTermination();\n this.log.warn(`Screen recording exited with error code ${code}, signal ${signal}`);\n }\n });\n await this._process.start(0);\n try {\n await waitForCondition(async () => {\n if (!this.isRunning) {\n throw new Error();\n }\n return !!(await this.getVideoPath());\n }, {\n waitMs: STARTUP_TIMEOUT_MS,\n intervalMs: STARTUP_INTERVAL_MS,\n });\n } catch (e) {\n await this._enforceTermination();\n this.log.errorAndThrow(`The expected screen record file '${this._videoPath}' does not exist after ${STARTUP_TIMEOUT_MS}ms. ` +\n `Check the server log for more details`);\n }\n this._timer = setTimeout(async () => {\n if (this.isRunning) {\n try {\n await this.stop();\n } catch (e) {\n this.log.error(e);\n }\n }\n }, this._timeLimitMs);\n this.log.info(`The video recording has started. Will timeout in ${this._timeLimitMs}ms`);\n }\n\n async stop (force = false) {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n\n if (force) {\n return await this._enforceTermination();\n }\n\n if (!this.isRunning) {\n this.log.debug('Screen recording is not running. Returning the recently recorded video');\n return await this.getVideoPath();\n }\n\n try {\n await this._process.stop('SIGINT', PROCESS_SHUTDOWN_TIMEOUT_MS);\n } catch (e) {\n await this._enforceTermination();\n throw new Error(`Screen recording has failed to stop after ${PROCESS_SHUTDOWN_TIMEOUT_MS}ms`);\n }\n\n return await this.getVideoPath();\n }\n}\n\nasync function extractSimulatorUdid (caps) {\n if (caps['safari:useSimulator'] === false) {\n return null;\n }\n\n const allDevices = _.flatMap(_.values(await new Simctl().getDevices(null, 'iOS')));\n for (const {name, udid, state, sdk} of allDevices) {\n if (state !== 'Booted') {\n continue;\n }\n\n if (_.toLower(caps['safari:deviceUDID']) === _.toLower(udid)) {\n return udid;\n }\n if (_.toLower(caps['safari:deviceName']) === _.toLower(name) &&\n (caps['safari:platformVersion'] && caps['safari:platformVersion'] === sdk\n || !caps['safari:platformVersion'])) {\n return udid;\n }\n }\n\n return null;\n}\n\n\n/**\n * @typedef {Object} StartRecordingOptions\n *\n * @property {?string} codec [hevc] - Specifies the codec type: \"h264\" or \"hevc\"\n * @property {?string} display [internal] - Supports \"internal\" or \"external\". Default is \"internal\"\n * @property {?string} mask - For non-rectangular displays, handle the mask by policy:\n * - ignored: The mask is ignored and the unmasked framebuffer is saved.\n * - alpha: Not supported, but retained for compatibility; the mask is rendered black.\n * - black: The mask is rendered black.\n * @property {string|number} timeLimit [600] - The maximum recording time, in seconds. The default\n * value is 600 seconds (10 minutes).\n * @property {boolean} forceRestart [true] - Whether to ignore the call if a screen recording is currently running\n * (`false`) or to start a new recording immediately and terminate the existing one if running (`true`).\n */\n\n/**\n * Record the Simulator's display in background while the automated test is running.\n * This method uses `xcrun simctl io recordVideo` helper under the hood.\n * Check the output of `xcrun simctl io` command for more details.\n *\n * @param {?StartRecordingOptions} options - The available options.\n * @throws {Error} If screen recording has failed to start or is not supported for the destination device.\n */\ncommands.startRecordingScreen = async function startRecordingScreen (options = {}) {\n const {\n timeLimit,\n codec,\n display,\n mask,\n forceRestart = true,\n } = options;\n if (this._screenRecorder?.isRunning) {\n this.log.info('The screen recording is already running');\n if (!forceRestart) {\n this.log.info('Doing nothing');\n return;\n }\n this.log.info('Forcing the active screen recording to stop');\n await this._screenRecorder.stop(true);\n }\n this._screenRecorder = null;\n\n const udid = await extractSimulatorUdid(this.caps);\n if (!udid) {\n throw new Error('Cannot determine Simulator UDID to record the video from. ' +\n 'Double check your session capabilities');\n }\n\n const videoPath = await tempDir.path({\n prefix: util.uuidV4().substring(0, 8),\n suffix: DEFAULT_EXT,\n });\n this._screenRecorder = new ScreenRecorder(udid, videoPath, this.log, {\n timeLimit: parseInt(timeLimit, 10),\n codec,\n display,\n mask,\n });\n try {\n await this._screenRecorder.start();\n } catch (e) {\n this._screenRecorder = null;\n throw e;\n }\n};\n\n/**\n * @typedef {Object} StopRecordingOptions\n *\n * @property {?string} remotePath - The path to the remote location, where the resulting video should be uploaded.\n * The following protocols are supported: http/https, ftp.\n * Null or empty string value (the default setting) means the content of resulting\n * file should be encoded as Base64 and passed as the endpoint response value.\n * An exception will be thrown if the generated media file is too big to\n * fit into the available process memory.\n * @property {?string} user - The name of the user for the remote authentication.\n * @property {?string} pass - The password for the remote authentication.\n * @property {?string} method - The http multipart upload method name. The 'PUT' one is used by default.\n * @property {?Object} headers - Additional headers mapping for multipart http(s) uploads\n * @property {?string} fileFieldName [file] - The name of the form field, where the file content BLOB should be stored for\n * http(s) uploads\n * @property {?Object|Array<Pair>} formFields - Additional form fields for multipart http(s) uploads\n */\n\n/**\n * Stop recording the screen.\n * If no screen recording has been started before then the method returns an empty string.\n *\n * @param {?StopRecordingOptions} options - The available options.\n * @returns {string} Base64-encoded content of the recorded media file if 'remotePath'\n * parameter is falsy or an empty string.\n * @throws {Error} If there was an error while getting the name of a media file\n * or the file content cannot be uploaded to the remote location\n * or screen recording is not supported on the device under test.\n */\ncommands.stopRecordingScreen = async function stopRecordingScreen (options = {}) {\n if (!this._screenRecorder) {\n this.log.info('No screen recording has been started. Doing nothing');\n return '';\n }\n\n this.log.debug('Retrieving the resulting video data');\n const videoPath = await this._screenRecorder.stop();\n if (!videoPath) {\n this.log.info('No video data is found. Returning an empty string');\n return '';\n }\n if (_.isEmpty(options.remotePath)) {\n const {size} = await fs.stat(videoPath);\n this.log.debug(`The size of the resulting screen recording is ${util.toReadableSizeString(size)}`);\n }\n return await uploadRecordedMedia(videoPath, options.remotePath, options);\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAGA,MAAMI,QAAQ,GAAG,CAAC,CAAC;AAEnB,MAAMC,mBAAmB,GAAG,GAAG;AAC/B,MAAMC,kBAAkB,GAAG,EAAE,GAAG,IAAI;AACpC,MAAMC,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC5C,MAAMC,2BAA2B,GAAG,EAAE,GAAG,IAAI;AAC7C,MAAMC,WAAW,GAAG,MAAM;AAG1B,eAAeC,mBAAmBA,CAAEC,SAAS,EAAEC,UAAU,GAAG,IAAI,EAAEC,aAAa,GAAG,CAAC,CAAC,EAAE;EACpF,IAAIC,eAAC,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IACzB,OAAO,CAAC,MAAMI,aAAI,CAACC,gBAAgB,CAACN,SAAS,CAAC,EAAEO,QAAQ,CAAC,CAAC;EAC5D;EAEA,MAAM;IAACC,IAAI;IAAEC,IAAI;IAAEC,MAAM;IAAEC,OAAO;IAAEC,aAAa;IAAEC;EAAU,CAAC,GAAGX,aAAa;EAC9E,MAAMY,OAAO,GAAG;IACdJ,MAAM,EAAEA,MAAM,IAAI,KAAK;IACvBC,OAAO;IACPC,aAAa;IACbC;EACF,CAAC;EACD,IAAIL,IAAI,IAAIC,IAAI,EAAE;IAChBK,OAAO,CAACC,IAAI,GAAG;MAACP,IAAI;MAAEC;IAAI,CAAC;EAC7B;EACA,MAAMO,YAAG,CAACC,UAAU,CAACjB,SAAS,EAAEC,UAAU,EAAEa,OAAO,CAAC;EACpD,OAAO,EAAE;AACX;AAEA,MAAMI,WAAW,GAAG,IAAIC,GAAG,CAAC,CAAC;AAC7BC,OAAO,CAACC,EAAE,CAAC,MAAM,EAAE,MAAM;EACvB,KAAK,MAAMC,SAAS,IAAIJ,WAAW,EAAE;IACnC,IAAI;MACFK,WAAE,CAACC,UAAU,CAACF,SAAS,CAAC;IAC1B,CAAC,CAAC,OAAOG,GAAG,EAAE,CAAC;EACjB;AACF,CAAC,CAAC;AAEF,MAAMC,cAAc,CAAC;EACnBC,WAAWA,CAAEC,IAAI,EAAEC,SAAS,EAAEC,GAAG,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;IAC5C,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACE,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,KAAK,GAAGL,IAAI;IACjB,IAAI,CAACM,UAAU,GAAGL,SAAS;IAC3B,IAAI,CAACM,MAAM,GAAGJ,IAAI,CAACK,KAAK;IACxB,IAAI,CAACC,QAAQ,GAAGN,IAAI,CAACO,OAAO;IAC5B,IAAI,CAACC,KAAK,GAAGR,IAAI,CAACS,IAAI;IACtB,IAAI,CAACC,YAAY,GAAGV,IAAI,CAACW,SAAS,GAAG,CAAC,GAAGX,IAAI,CAACW,SAAS,GAAG,IAAI,GAAG9C,qBAAqB;IACtF,IAAI,CAAC+C,MAAM,GAAG,IAAI;EACpB;EAEA,MAAMC,YAAYA,CAAA,EAAI;IACpB,IAAI,MAAMrB,WAAE,CAACsB,MAAM,CAAC,IAAI,CAACX,UAAU,CAAC,EAAE;MACpChB,WAAW,CAAC4B,GAAG,CAAC,IAAI,CAACZ,UAAU,CAAC;MAChC,OAAO,IAAI,CAACA,UAAU;IACxB;IACA,OAAO,EAAE;EACX;EAEA,IAAIa,SAASA,CAAA,EAAI;IAAA,IAAAC,cAAA;IACf,OAAO,CAAC,GAAAA,cAAA,GAAE,IAAI,CAAChB,QAAQ,cAAAgB,cAAA,eAAbA,cAAA,CAAeD,SAAS,CAAC;EACrC;EAEA,MAAME,mBAAmBA,CAAA,EAAI;IAC3B,IAAI,IAAI,CAACF,SAAS,EAAE;MAClB,IAAI,CAACjB,GAAG,CAACoB,KAAK,CAAC,sDAAsD,CAAC;MACtE,IAAI;QACF,MAAM,IAAI,CAAClB,QAAQ,CAACmB,IAAI,CAAC,SAAS,CAAC;MACrC,CAAC,CAAC,OAAO1B,GAAG,EAAE,CAAC;IACjB;IACA,IAAI,CAACO,QAAQ,GAAG,IAAI;IACpB,MAAMH,SAAS,GAAG,MAAM,IAAI,CAACe,YAAY,CAAC,CAAC;IAC3C,IAAIf,SAAS,EAAE;MACb,MAAMN,WAAE,CAAC6B,MAAM,CAACvB,SAAS,CAAC;MAC1BX,WAAW,CAACmC,MAAM,CAACxB,SAAS,CAAC;IAC/B;IACA,OAAO,EAAE;EACX;EAEA,MAAMyB,KAAKA,CAAA,EAAI;IACb,MAAMC,IAAI,GAAG,CACX,IAAI,CAACtB,KAAK,EAAE,aAAa,CAC1B;IACD,IAAI,IAAI,CAACI,QAAQ,EAAE;MACjBkB,IAAI,CAACC,IAAI,CAAC,WAAW,EAAE,IAAI,CAACnB,QAAQ,CAAC;IACvC;IACA,IAAI,IAAI,CAACF,MAAM,EAAE;MACfoB,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE,IAAI,CAACrB,MAAM,CAAC;IACnC;IACA,IAAI,IAAI,CAACI,KAAK,EAAE;MACdgB,IAAI,CAACC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAACjB,KAAK,CAAC;IACjC;IACAgB,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE,IAAI,CAACtB,UAAU,CAAC;IACrC,IAAI,CAACF,QAAQ,GAAG,MAAM,IAAIyB,mBAAM,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,EAAE;MAC5CH,IAAI;MACJI,YAAY,EAAE;IAChB,CAAC,CAAC;IACF,IAAI,CAAC7B,GAAG,CAACoB,KAAK,CAAE,4CAA2C7C,aAAI,CAACuD,KAAK,CAACL,IAAI,CAAE,EAAC,CAAC;IAC9E,IAAI,CAACvB,QAAQ,CAACX,EAAE,CAAC,QAAQ,EAAE,CAACwC,MAAM,EAAEC,MAAM,KAAK;MAC7C,MAAMC,IAAI,GAAG5D,eAAC,CAAC6D,IAAI,CAACH,MAAM,IAAIC,MAAM,CAAC;MACrC,IAAIC,IAAI,EAAE;QACR,IAAI,CAACjC,GAAG,CAACoB,KAAK,CAAE,gBAAe,IAAI,CAACjB,KAAK,CAACgC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAE,KAAIF,IAAK,EAAC,CAAC;MACvE;IACF,CAAC,CAAC;IACF,IAAI,CAAC/B,QAAQ,CAACkC,IAAI,CAAC,MAAM,EAAE,OAAOC,IAAI,EAAEC,MAAM,KAAK;MACjD,IAAI,CAACpC,QAAQ,GAAG,IAAI;MACpB,IAAImC,IAAI,KAAK,CAAC,EAAE;QACd,IAAI,CAACrC,GAAG,CAACoB,KAAK,CAAC,wCAAwC,CAAC;MAC1D,CAAC,MAAM;QACL,MAAM,IAAI,CAACD,mBAAmB,CAAC,CAAC;QAChC,IAAI,CAACnB,GAAG,CAACuC,IAAI,CAAE,2CAA0CF,IAAK,YAAWC,MAAO,EAAC,CAAC;MACpF;IACF,CAAC,CAAC;IACF,MAAM,IAAI,CAACpC,QAAQ,CAACsB,KAAK,CAAC,CAAC,CAAC;IAC5B,IAAI;MACF,MAAM,IAAAgB,0BAAgB,EAAC,YAAY;QACjC,IAAI,CAAC,IAAI,CAACvB,SAAS,EAAE;UACnB,MAAM,IAAIwB,KAAK,CAAC,CAAC;QACnB;QACA,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC3B,YAAY,CAAC,CAAC,CAAC;MACtC,CAAC,EAAE;QACD4B,MAAM,EAAE7E,kBAAkB;QAC1B8E,UAAU,EAAE/E;MACd,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOgF,CAAC,EAAE;MACV,MAAM,IAAI,CAACzB,mBAAmB,CAAC,CAAC;MAChC,IAAI,CAACnB,GAAG,CAAC6C,aAAa,CAAE,oCAAmC,IAAI,CAACzC,UAAW,0BAAyBvC,kBAAmB,MAAK,GACzH,uCAAsC,CAAC;IAC5C;IACA,IAAI,CAACgD,MAAM,GAAGiC,UAAU,CAAC,YAAY;MACnC,IAAI,IAAI,CAAC7B,SAAS,EAAE;QAClB,IAAI;UACF,MAAM,IAAI,CAACI,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,OAAOuB,CAAC,EAAE;UACV,IAAI,CAAC5C,GAAG,CAAC+C,KAAK,CAACH,CAAC,CAAC;QACnB;MACF;IACF,CAAC,EAAE,IAAI,CAACjC,YAAY,CAAC;IACrB,IAAI,CAACX,GAAG,CAACgD,IAAI,CAAE,oDAAmD,IAAI,CAACrC,YAAa,IAAG,CAAC;EAC1F;EAEA,MAAMU,IAAIA,CAAE4B,KAAK,GAAG,KAAK,EAAE;IACzB,IAAI,IAAI,CAACpC,MAAM,EAAE;MACfqC,YAAY,CAAC,IAAI,CAACrC,MAAM,CAAC;MACzB,IAAI,CAACA,MAAM,GAAG,IAAI;IACpB;IAEA,IAAIoC,KAAK,EAAE;MACT,OAAO,MAAM,IAAI,CAAC9B,mBAAmB,CAAC,CAAC;IACzC;IAEA,IAAI,CAAC,IAAI,CAACF,SAAS,EAAE;MACnB,IAAI,CAACjB,GAAG,CAACoB,KAAK,CAAC,wEAAwE,CAAC;MACxF,OAAO,MAAM,IAAI,CAACN,YAAY,CAAC,CAAC;IAClC;IAEA,IAAI;MACF,MAAM,IAAI,CAACZ,QAAQ,CAACmB,IAAI,CAAC,QAAQ,EAAEtD,2BAA2B,CAAC;IACjE,CAAC,CAAC,OAAO6E,CAAC,EAAE;MACV,MAAM,IAAI,CAACzB,mBAAmB,CAAC,CAAC;MAChC,MAAM,IAAIsB,KAAK,CAAE,6CAA4C1E,2BAA4B,IAAG,CAAC;IAC/F;IAEA,OAAO,MAAM,IAAI,CAAC+C,YAAY,CAAC,CAAC;EAClC;AACF;AAEA,eAAeqC,oBAAoBA,CAAEC,IAAI,EAAE;EACzC,IAAIA,IAAI,CAAC,qBAAqB,CAAC,KAAK,KAAK,EAAE;IACzC,OAAO,IAAI;EACb;EAEA,MAAMC,UAAU,GAAGhF,eAAC,CAACiF,OAAO,CAACjF,eAAC,CAACkF,MAAM,CAAC,MAAM,IAAI5B,mBAAM,CAAC,CAAC,CAAC6B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;EAClF,KAAK,MAAM;IAACC,IAAI;IAAE3D,IAAI;IAAE4D,KAAK;IAAEC;EAAG,CAAC,IAAIN,UAAU,EAAE;IACjD,IAAIK,KAAK,KAAK,QAAQ,EAAE;MACtB;IACF;IAEA,IAAIrF,eAAC,CAACuF,OAAO,CAACR,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK/E,eAAC,CAACuF,OAAO,CAAC9D,IAAI,CAAC,EAAE;MAC5D,OAAOA,IAAI;IACb;IACA,IAAIzB,eAAC,CAACuF,OAAO,CAACR,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK/E,eAAC,CAACuF,OAAO,CAACH,IAAI,CAAC,KACzDL,IAAI,CAAC,wBAAwB,CAAC,IAAIA,IAAI,CAAC,wBAAwB,CAAC,KAAKO,GAAG,IACpE,CAACP,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE;MACvC,OAAOtD,IAAI;IACb;EACF;EAEA,OAAO,IAAI;AACb;AA0BAnC,QAAQ,CAACkG,oBAAoB,GAAG,eAAeA,oBAAoBA,CAAE7E,OAAO,GAAG,CAAC,CAAC,EAAE;EAAA,IAAA8E,qBAAA;EACjF,MAAM;IACJlD,SAAS;IACTN,KAAK;IACLE,OAAO;IACPE,IAAI;IACJqD,YAAY,GAAG;EACjB,CAAC,GAAG/E,OAAO;EACX,KAAA8E,qBAAA,GAAI,IAAI,CAACE,eAAe,cAAAF,qBAAA,eAApBA,qBAAA,CAAsB7C,SAAS,EAAE;IACnC,IAAI,CAACjB,GAAG,CAACgD,IAAI,CAAC,yCAAyC,CAAC;IACxD,IAAI,CAACe,YAAY,EAAE;MACjB,IAAI,CAAC/D,GAAG,CAACgD,IAAI,CAAC,eAAe,CAAC;MAC9B;IACF;IACA,IAAI,CAAChD,GAAG,CAACgD,IAAI,CAAC,6CAA6C,CAAC;IAC5D,MAAM,IAAI,CAACgB,eAAe,CAAC3C,IAAI,CAAC,IAAI,CAAC;EACvC;EACA,IAAI,CAAC2C,eAAe,GAAG,IAAI;EAE3B,MAAMlE,IAAI,GAAG,MAAMqD,oBAAoB,CAAC,IAAI,CAACC,IAAI,CAAC;EAClD,IAAI,CAACtD,IAAI,EAAE;IACT,MAAM,IAAI2C,KAAK,CAAC,4DAA4D,GAC1E,wCAAwC,CAAC;EAC7C;EAEA,MAAM1C,SAAS,GAAG,MAAMkE,gBAAO,CAACC,IAAI,CAAC;IACnCC,MAAM,EAAE5F,aAAI,CAAC6F,MAAM,CAAC,CAAC,CAACjC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACrCkC,MAAM,EAAErG;EACV,CAAC,CAAC;EACF,IAAI,CAACgG,eAAe,GAAG,IAAIpE,cAAc,CAACE,IAAI,EAAEC,SAAS,EAAE,IAAI,CAACC,GAAG,EAAE;IACnEY,SAAS,EAAE0D,QAAQ,CAAC1D,SAAS,EAAE,EAAE,CAAC;IAClCN,KAAK;IACLE,OAAO;IACPE;EACF,CAAC,CAAC;EACF,IAAI;IACF,MAAM,IAAI,CAACsD,eAAe,CAACxC,KAAK,CAAC,CAAC;EACpC,CAAC,CAAC,OAAOoB,CAAC,EAAE;IACV,IAAI,CAACoB,eAAe,GAAG,IAAI;IAC3B,MAAMpB,CAAC;EACT;AACF,CAAC;AA+BDjF,QAAQ,CAAC4G,mBAAmB,GAAG,eAAeA,mBAAmBA,CAAEvF,OAAO,GAAG,CAAC,CAAC,EAAE;EAC/E,IAAI,CAAC,IAAI,CAACgF,eAAe,EAAE;IACzB,IAAI,CAAChE,GAAG,CAACgD,IAAI,CAAC,qDAAqD,CAAC;IACpE,OAAO,EAAE;EACX;EAEA,IAAI,CAAChD,GAAG,CAACoB,KAAK,CAAC,qCAAqC,CAAC;EACrD,MAAMrB,SAAS,GAAG,MAAM,IAAI,CAACiE,eAAe,CAAC3C,IAAI,CAAC,CAAC;EACnD,IAAI,CAACtB,SAAS,EAAE;IACd,IAAI,CAACC,GAAG,CAACgD,IAAI,CAAC,mDAAmD,CAAC;IAClE,OAAO,EAAE;EACX;EACA,IAAI3E,eAAC,CAACC,OAAO,CAACU,OAAO,CAACb,UAAU,CAAC,EAAE;IACjC,MAAM;MAACqG;IAAI,CAAC,GAAG,MAAM/E,WAAE,CAACgF,IAAI,CAAC1E,SAAS,CAAC;IACvC,IAAI,CAACC,GAAG,CAACoB,KAAK,CAAE,iDAAgD7C,aAAI,CAACmG,oBAAoB,CAACF,IAAI,CAAE,EAAC,CAAC;EACpG;EACA,OAAO,MAAMvG,mBAAmB,CAAC8B,SAAS,EAAEf,OAAO,CAACb,UAAU,EAAEa,OAAO,CAAC;AAC1E,CAAC;AAAC,IAAA2F,QAAA,GAEahH,QAAQ;AAAAiH,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -41,4 +41,4 @@ const desiredCapConstraints = {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
exports.desiredCapConstraints = desiredCapConstraints;
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJicm93c2VyTmFtZSIsImlzU3RyaW5nIiwiYnJvd3NlclZlcnNpb24iLCJpc0Jvb2xlYW4iLCJpc09iamVjdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvZGVzaXJlZC1jYXBzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHtcbiAgYnJvd3Nlck5hbWU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgfSxcbiAgYnJvd3NlclZlcnNpb246IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICAnc2FmYXJpOnBsYXRmb3JtVmVyc2lvbic6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICAnc2FmYXJpOnBsYXRmb3JtQnVpbGRWZXJzaW9uJzoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gICdzYWZhcmk6dXNlU2ltdWxhdG9yJzoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICAnc2FmYXJpOmRldmljZVR5cGUnOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgJ3NhZmFyaTpkZXZpY2VOYW1lJzoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gICdzYWZhcmk6ZGV2aWNlVURJRCc6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICAnc2FmYXJpOmF1dG9tYXRpY0luc3BlY3Rpb24nOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gICdzYWZhcmk6YXV0b21hdGljUHJvZmlsaW5nJzoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICAnd2Via2l0OldlYlJUQyc6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxufTtcblxuZXhwb3J0IHsgZGVzaXJlZENhcENvbnN0cmFpbnRzIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxNQUFNQSxxQkFBcUIsR0FBRztFQUM1QkMsV0FBVyxFQUFFO0lBQ1hDLFFBQVEsRUFBRTtFQUNaLENBQUM7RUFDREMsY0FBYyxFQUFFO0lBQ2RELFFBQVEsRUFBRTtFQUNaLENBQUM7RUFDRCx3QkFBd0IsRUFBRTtJQUN4QkEsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNELDZCQUE2QixFQUFFO0lBQzdCQSxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0QscUJBQXFCLEVBQUU7SUFDckJFLFNBQVMsRUFBRTtFQUNiLENBQUM7RUFDRCxtQkFBbUIsRUFBRTtJQUNuQkYsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNELG1CQUFtQixFQUFFO0lBQ25CQSxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0QsbUJBQW1CLEVBQUU7SUFDbkJBLFFBQVEsRUFBRTtFQUNaLENBQUM7RUFDRCw0QkFBNEIsRUFBRTtJQUM1QkUsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNELDJCQUEyQixFQUFFO0lBQzNCQSxTQUFTLEVBQUU7RUFDYixDQUFDO0VBQ0QsZUFBZSxFQUFFO0lBQ2ZDLFFBQVEsRUFBRTtFQUNaO0FBQ0YsQ0FBQztBQUFDQyxPQUFBLENBQUFOLHFCQUFBLEdBQUFBLHFCQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desired-caps.js","names":["desiredCapConstraints","browserName","isString","browserVersion","isBoolean","isObject"],"sources":["../../lib/desired-caps.js"],"sourcesContent":["const desiredCapConstraints = {\n browserName: {\n isString: true,\n },\n browserVersion: {\n isString: true\n },\n 'safari:platformVersion': {\n isString: true\n },\n 'safari:platformBuildVersion': {\n isString: true\n },\n 'safari:useSimulator': {\n isBoolean: true\n },\n 'safari:deviceType': {\n isString: true\n },\n 'safari:deviceName': {\n isString: true\n },\n 'safari:deviceUDID': {\n isString: true\n },\n 'safari:automaticInspection': {\n isBoolean: true\n },\n 'safari:automaticProfiling': {\n isBoolean: true\n },\n 'webkit:WebRTC': {\n isObject: true\n },\n};\n\nexport { desiredCapConstraints };\n"],"mappings":";;;;;;;AAAA,MAAMA,qBAAqB,GAAG;EAC5BC,WAAW,EAAE;IACXC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdD,QAAQ,EAAE;EACZ,CAAC;EACD,wBAAwB,EAAE;IACxBA,QAAQ,EAAE;EACZ,CAAC;EACD,6BAA6B,EAAE;IAC7BA,QAAQ,EAAE;EACZ,CAAC;EACD,qBAAqB,EAAE;IACrBE,SAAS,EAAE;EACb,CAAC;EACD,mBAAmB,EAAE;IACnBF,QAAQ,EAAE;EACZ,CAAC;EACD,mBAAmB,EAAE;IACnBA,QAAQ,EAAE;EACZ,CAAC;EACD,mBAAmB,EAAE;IACnBA,QAAQ,EAAE;EACZ,CAAC;EACD,4BAA4B,EAAE;IAC5BE,SAAS,EAAE;EACb,CAAC;EACD,2BAA2B,EAAE;IAC3BA,SAAS,EAAE;EACb,CAAC;EACD,eAAe,EAAE;IACfC,QAAQ,EAAE;EACZ;AACF,CAAC;
|
|
1
|
+
{"version":3,"file":"desired-caps.js","names":["desiredCapConstraints","browserName","isString","browserVersion","isBoolean","isObject","exports"],"sources":["../../lib/desired-caps.js"],"sourcesContent":["const desiredCapConstraints = {\n browserName: {\n isString: true,\n },\n browserVersion: {\n isString: true\n },\n 'safari:platformVersion': {\n isString: true\n },\n 'safari:platformBuildVersion': {\n isString: true\n },\n 'safari:useSimulator': {\n isBoolean: true\n },\n 'safari:deviceType': {\n isString: true\n },\n 'safari:deviceName': {\n isString: true\n },\n 'safari:deviceUDID': {\n isString: true\n },\n 'safari:automaticInspection': {\n isBoolean: true\n },\n 'safari:automaticProfiling': {\n isBoolean: true\n },\n 'webkit:WebRTC': {\n isObject: true\n },\n};\n\nexport { desiredCapConstraints };\n"],"mappings":";;;;;;;AAAA,MAAMA,qBAAqB,GAAG;EAC5BC,WAAW,EAAE;IACXC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdD,QAAQ,EAAE;EACZ,CAAC;EACD,wBAAwB,EAAE;IACxBA,QAAQ,EAAE;EACZ,CAAC;EACD,6BAA6B,EAAE;IAC7BA,QAAQ,EAAE;EACZ,CAAC;EACD,qBAAqB,EAAE;IACrBE,SAAS,EAAE;EACb,CAAC;EACD,mBAAmB,EAAE;IACnBF,QAAQ,EAAE;EACZ,CAAC;EACD,mBAAmB,EAAE;IACnBA,QAAQ,EAAE;EACZ,CAAC;EACD,mBAAmB,EAAE;IACnBA,QAAQ,EAAE;EACZ,CAAC;EACD,4BAA4B,EAAE;IAC5BE,SAAS,EAAE;EACb,CAAC;EACD,2BAA2B,EAAE;IAC3BA,SAAS,EAAE;EACb,CAAC;EACD,eAAe,EAAE;IACfC,QAAQ,EAAE;EACZ;AACF,CAAC;AAACC,OAAA,CAAAN,qBAAA,GAAAA,qBAAA"}
|
package/build/lib/driver.js
CHANGED
|
@@ -64,4 +64,4 @@ class SafariDriver extends _driver.BaseDriver {
|
|
|
64
64
|
}
|
|
65
65
|
var _default = SafariDriver;
|
|
66
66
|
exports.default = _default;
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiX3NhZmFyaSIsIl9kZXNpcmVkQ2FwcyIsIl9pbmRleCIsIl91dGlscyIsIl9tZXRob2RNYXAiLCJOT19QUk9YWSIsIlJlZ0V4cCIsIlNhZmFyaURyaXZlciIsIkJhc2VEcml2ZXIiLCJuZXdNZXRob2RNYXAiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJsb2NhdG9yU3RyYXRlZ2llcyIsInJlc2V0U3RhdGUiLCJjbWQiLCJmbiIsIl8iLCJ0b1BhaXJzIiwiY29tbWFuZHMiLCJwcm90b3R5cGUiLCJzYWZhcmkiLCJwcm94eVJlcVJlcyIsImlzUHJveHlBY3RpdmUiLCJfc2NyZWVuUmVjb3JkZXIiLCJwcm94eUFjdGl2ZSIsImdldFByb3h5QXZvaWRMaXN0IiwiY2FuUHJveHkiLCJjcmVhdGVTZXNzaW9uIiwiYXJncyIsInNlc3Npb25JZCIsImNhcHMiLCJTYWZhcmlEcml2ZXJTZXJ2ZXIiLCJsb2ciLCJzdGFydCIsImZvcm1hdENhcHNGb3JTZXJ2ZXIiLCJlIiwiZGVsZXRlU2Vzc2lvbiIsInByb3h5IiwiYmluZCIsIl90aGlzJF9zY3JlZW5SZWNvcmRlciIsIl90aGlzJHNhZmFyaSIsImluZm8iLCJzdG9wIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kcml2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIgZnJvbSAnLi9zYWZhcmknO1xuaW1wb3J0IHsgZGVzaXJlZENhcENvbnN0cmFpbnRzIH0gZnJvbSAnLi9kZXNpcmVkLWNhcHMnO1xuaW1wb3J0IGNvbW1hbmRzIGZyb20gJy4vY29tbWFuZHMvaW5kZXgnO1xuaW1wb3J0IHsgZm9ybWF0Q2Fwc0ZvclNlcnZlciB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgbmV3TWV0aG9kTWFwIH0gZnJvbSAnLi9tZXRob2QtbWFwJztcblxuY29uc3QgTk9fUFJPWFkgPSBbXG4gIFsnR0VUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnQvW14vXSsvZWxlbWVudHM/JCcpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnRzPyQnKV0sXG5cbiAgWydERUxFVEUnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvY29va2llJCcpXSxcbl07XG5cbmNsYXNzIFNhZmFyaURyaXZlciBleHRlbmRzIEJhc2VEcml2ZXIge1xuXG4gIHN0YXRpYyBuZXdNZXRob2RNYXAgPSBuZXdNZXRob2RNYXA7XG5cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKG9wdHMpO1xuICAgIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzID0gZGVzaXJlZENhcENvbnN0cmFpbnRzO1xuICAgIHRoaXMubG9jYXRvclN0cmF0ZWdpZXMgPSBbXG4gICAgICAneHBhdGgnLFxuICAgICAgJ3RhZyBuYW1lJyxcbiAgICAgICdsaW5rIHRleHQnLFxuICAgICAgJ3BhcnRpYWwgbGluayB0ZXh0JyxcbiAgICAgICdjc3Mgc2VsZWN0b3InLFxuICAgICAgLy8gTGV0IHRoZXNlIHR3byByZWFjaCBTYWZhcmkgRHJpdmVyIGFuZCBmYWlsIHRoZXJlIHdpdGggYSBwcm9wZXIgZXJyb3IgbWVzc2FnZVxuICAgICAgJ2lkJyxcbiAgICAgICduYW1lJyxcbiAgICBdO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgZm9yIChjb25zdCBbY21kLCBmbl0gb2YgXy50b1BhaXJzKGNvbW1hbmRzKSkge1xuICAgICAgU2FmYXJpRHJpdmVyLnByb3RvdHlwZVtjbWRdID0gZm47XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTdGF0ZSAoKSB7XG4gICAgdGhpcy5zYWZhcmkgPSBudWxsO1xuICAgIHRoaXMucHJveHlSZXFSZXMgPSBudWxsO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3h5QWN0aXZlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKCkge1xuICAgIHJldHVybiBOT19QUk9YWTtcbiAgfVxuXG4gIGNhblByb3h5ICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oLi4uYXJncyk7XG4gICAgdGhpcy5zYWZhcmkgPSBuZXcgU2FmYXJpRHJpdmVyU2VydmVyKHRoaXMubG9nKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zYWZhcmkuc3RhcnQoZm9ybWF0Q2Fwc0ZvclNlcnZlcihjYXBzKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVTZXNzaW9uKCk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICB0aGlzLnByb3h5UmVxUmVzID0gdGhpcy5zYWZhcmkucHJveHkucHJveHlSZXFSZXMuYmluZCh0aGlzLnNhZmFyaS5wcm94eSk7XG4gICAgdGhpcy5pc1Byb3h5QWN0aXZlID0gdHJ1ZTtcbiAgICByZXR1cm4gW3Nlc3Npb25JZCwgY2Fwc107XG4gIH1cblxuICBhc3luYyBkZWxldGVTZXNzaW9uICgpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdFbmRpbmcgU2FmYXJpIHNlc3Npb24nKTtcbiAgICBhd2FpdCB0aGlzLl9zY3JlZW5SZWNvcmRlcj8uc3RvcCh0cnVlKTtcbiAgICBhd2FpdCB0aGlzLnNhZmFyaT8uc3RvcCgpO1xuICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuXG4gICAgYXdhaXQgc3VwZXIuZGVsZXRlU2Vzc2lvbigpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFFQSxNQUFNTyxRQUFRLEdBQUcsQ0FDZixDQUFDLEtBQUssRUFBRSxJQUFJQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUM3QyxDQUFDLE1BQU0sRUFBRSxJQUFJQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUM5QyxDQUFDLE1BQU0sRUFBRSxJQUFJQSxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQyxFQUNoRSxDQUFDLE1BQU0sRUFBRSxJQUFJQSxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxFQUVsRCxDQUFDLFFBQVEsRUFBRSxJQUFJQSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUNsRDtBQUVELE1BQU1DLFlBQVksU0FBU0Msa0JBQVUsQ0FBQztFQUVwQyxPQUFPQyxZQUFZLEdBQUdBLHVCQUFZO0VBRWxDQyxXQUFXQSxDQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDdEIsS0FBSyxDQUFDQSxJQUFJLENBQUM7SUFDWCxJQUFJLENBQUNDLHFCQUFxQixHQUFHQSxrQ0FBcUI7SUFDbEQsSUFBSSxDQUFDQyxpQkFBaUIsR0FBRyxDQUN2QixPQUFPLEVBQ1AsVUFBVSxFQUNWLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsY0FBYyxFQUVkLElBQUksRUFDSixNQUFNLENBQ1A7SUFDRCxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBRWpCLEtBQUssTUFBTSxDQUFDQyxHQUFHLEVBQUVDLEVBQUUsQ0FBQyxJQUFJQyxlQUFDLENBQUNDLE9BQU8sQ0FBQ0MsY0FBUSxDQUFDLEVBQUU7TUFDM0NaLFlBQVksQ0FBQ2EsU0FBUyxDQUFDTCxHQUFHLENBQUMsR0FBR0MsRUFBRTtJQUNsQztFQUNGO0VBRUFGLFVBQVVBLENBQUEsRUFBSTtJQUNaLElBQUksQ0FBQ08sTUFBTSxHQUFHLElBQUk7SUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUcsSUFBSTtJQUN2QixJQUFJLENBQUNDLGFBQWEsR0FBRyxLQUFLO0lBQzFCLElBQUksQ0FBQ0MsZUFBZSxHQUFHLElBQUk7RUFDN0I7RUFFQUMsV0FBV0EsQ0FBQSxFQUFJO0lBQ2IsT0FBTyxJQUFJLENBQUNGLGFBQWE7RUFDM0I7RUFFQUcsaUJBQWlCQSxDQUFBLEVBQUk7SUFDbkIsT0FBT3JCLFFBQVE7RUFDakI7RUFFQXNCLFFBQVFBLENBQUEsRUFBSTtJQUNWLE9BQU8sSUFBSTtFQUNiO0VBRUEsTUFBTUMsYUFBYUEsQ0FBRSxHQUFHQyxJQUFJLEVBQUU7SUFDNUIsTUFBTSxDQUFDQyxTQUFTLEVBQUVDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxDQUFDSCxhQUFhLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzVELElBQUksQ0FBQ1IsTUFBTSxHQUFHLElBQUlXLGVBQWtCLENBQUMsSUFBSSxDQUFDQyxHQUFHLENBQUM7SUFDOUMsSUFBSTtNQUNGLE1BQU0sSUFBSSxDQUFDWixNQUFNLENBQUNhLEtBQUssQ0FBQyxJQUFBQywwQkFBbUIsRUFBQ0osSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLE9BQU9LLENBQUMsRUFBRTtNQUNWLE1BQU0sSUFBSSxDQUFDQyxhQUFhLENBQUMsQ0FBQztNQUMxQixNQUFNRCxDQUFDO0lBQ1Q7SUFDQSxJQUFJLENBQUNkLFdBQVcsR0FBRyxJQUFJLENBQUNELE1BQU0sQ0FBQ2lCLEtBQUssQ0FBQ2hCLFdBQVcsQ0FBQ2lCLElBQUksQ0FBQyxJQUFJLENBQUNsQixNQUFNLENBQUNpQixLQUFLLENBQUM7SUFDeEUsSUFBSSxDQUFDZixhQUFhLEdBQUcsSUFBSTtJQUN6QixPQUFPLENBQUNPLFNBQVMsRUFBRUMsSUFBSSxDQUFDO0VBQzFCO0VBRUEsTUFBTU0sYUFBYUEsQ0FBQSxFQUFJO0lBQUEsSUFBQUcscUJBQUEsRUFBQUMsWUFBQTtJQUNyQixJQUFJLENBQUNSLEdBQUcsQ0FBQ1MsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLFFBQUFGLHFCQUFBLEdBQU0sSUFBSSxDQUFDaEIsZUFBZSxjQUFBZ0IscUJBQUEsdUJBQXBCQSxxQkFBQSxDQUFzQkcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN0QyxRQUFBRixZQUFBLEdBQU0sSUFBSSxDQUFDcEIsTUFBTSxjQUFBb0IsWUFBQSx1QkFBWEEsWUFBQSxDQUFhRSxJQUFJLENBQUMsQ0FBQztJQUN6QixJQUFJLENBQUM3QixVQUFVLENBQUMsQ0FBQztJQUVqQixNQUFNLEtBQUssQ0FBQ3VCLGFBQWEsQ0FBQyxDQUFDO0VBQzdCO0FBQ0Y7QUFBQyxJQUFBTyxRQUFBLEdBRWNyQyxZQUFZO0FBQUFzQyxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
|
package/build/lib/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":["NO_PROXY","RegExp","SafariDriver","BaseDriver","newMethodMap","constructor","opts","desiredCapConstraints","locatorStrategies","resetState","cmd","fn","_","toPairs","commands","prototype","safari","proxyReqRes","isProxyActive","_screenRecorder","proxyActive","getProxyAvoidList","canProxy","createSession","args","sessionId","caps","SafariDriverServer","log","start","formatCapsForServer","e","deleteSession","proxy","bind","info","stop"],"sources":["../../lib/driver.js"],"sourcesContent":["import _ from 'lodash';\nimport { BaseDriver } from 'appium/driver';\nimport SafariDriverServer from './safari';\nimport { desiredCapConstraints } from './desired-caps';\nimport commands from './commands/index';\nimport { formatCapsForServer } from './utils';\nimport { newMethodMap } from './method-map';\n\nconst NO_PROXY = [\n ['GET', new RegExp('^/session/[^/]+/appium')],\n ['POST', new RegExp('^/session/[^/]+/appium')],\n ['POST', new RegExp('^/session/[^/]+/element/[^/]+/elements?$')],\n ['POST', new RegExp('^/session/[^/]+/elements?$')],\n\n ['DELETE', new RegExp('^/session/[^/]+/cookie$')],\n];\n\nclass SafariDriver extends BaseDriver {\n\n static newMethodMap = newMethodMap;\n\n constructor (opts = {}) {\n super(opts);\n this.desiredCapConstraints = desiredCapConstraints;\n this.locatorStrategies = [\n 'xpath',\n 'tag name',\n 'link text',\n 'partial link text',\n 'css selector',\n // Let these two reach Safari Driver and fail there with a proper error message\n 'id',\n 'name',\n ];\n this.resetState();\n\n for (const [cmd, fn] of _.toPairs(commands)) {\n SafariDriver.prototype[cmd] = fn;\n }\n }\n\n resetState () {\n this.safari = null;\n this.proxyReqRes = null;\n this.isProxyActive = false;\n this._screenRecorder = null;\n }\n\n proxyActive () {\n return this.isProxyActive;\n }\n\n getProxyAvoidList () {\n return NO_PROXY;\n }\n\n canProxy () {\n return true;\n }\n\n async createSession (...args) {\n const [sessionId, caps] = await super.createSession(...args);\n this.safari = new SafariDriverServer(this.log);\n try {\n await this.safari.start(formatCapsForServer(caps));\n } catch (e) {\n await this.deleteSession();\n throw e;\n }\n this.proxyReqRes = this.safari.proxy.proxyReqRes.bind(this.safari.proxy);\n this.isProxyActive = true;\n return [sessionId, caps];\n }\n\n async deleteSession () {\n this.log.info('Ending Safari session');\n await this._screenRecorder?.stop(true);\n await this.safari?.stop();\n this.resetState();\n\n await super.deleteSession();\n }\n}\n\nexport default SafariDriver;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,
|
|
1
|
+
{"version":3,"file":"driver.js","names":["_lodash","_interopRequireDefault","require","_driver","_safari","_desiredCaps","_index","_utils","_methodMap","NO_PROXY","RegExp","SafariDriver","BaseDriver","newMethodMap","constructor","opts","desiredCapConstraints","locatorStrategies","resetState","cmd","fn","_","toPairs","commands","prototype","safari","proxyReqRes","isProxyActive","_screenRecorder","proxyActive","getProxyAvoidList","canProxy","createSession","args","sessionId","caps","SafariDriverServer","log","start","formatCapsForServer","e","deleteSession","proxy","bind","_this$_screenRecorder","_this$safari","info","stop","_default","exports","default"],"sources":["../../lib/driver.js"],"sourcesContent":["import _ from 'lodash';\nimport { BaseDriver } from 'appium/driver';\nimport SafariDriverServer from './safari';\nimport { desiredCapConstraints } from './desired-caps';\nimport commands from './commands/index';\nimport { formatCapsForServer } from './utils';\nimport { newMethodMap } from './method-map';\n\nconst NO_PROXY = [\n ['GET', new RegExp('^/session/[^/]+/appium')],\n ['POST', new RegExp('^/session/[^/]+/appium')],\n ['POST', new RegExp('^/session/[^/]+/element/[^/]+/elements?$')],\n ['POST', new RegExp('^/session/[^/]+/elements?$')],\n\n ['DELETE', new RegExp('^/session/[^/]+/cookie$')],\n];\n\nclass SafariDriver extends BaseDriver {\n\n static newMethodMap = newMethodMap;\n\n constructor (opts = {}) {\n super(opts);\n this.desiredCapConstraints = desiredCapConstraints;\n this.locatorStrategies = [\n 'xpath',\n 'tag name',\n 'link text',\n 'partial link text',\n 'css selector',\n // Let these two reach Safari Driver and fail there with a proper error message\n 'id',\n 'name',\n ];\n this.resetState();\n\n for (const [cmd, fn] of _.toPairs(commands)) {\n SafariDriver.prototype[cmd] = fn;\n }\n }\n\n resetState () {\n this.safari = null;\n this.proxyReqRes = null;\n this.isProxyActive = false;\n this._screenRecorder = null;\n }\n\n proxyActive () {\n return this.isProxyActive;\n }\n\n getProxyAvoidList () {\n return NO_PROXY;\n }\n\n canProxy () {\n return true;\n }\n\n async createSession (...args) {\n const [sessionId, caps] = await super.createSession(...args);\n this.safari = new SafariDriverServer(this.log);\n try {\n await this.safari.start(formatCapsForServer(caps));\n } catch (e) {\n await this.deleteSession();\n throw e;\n }\n this.proxyReqRes = this.safari.proxy.proxyReqRes.bind(this.safari.proxy);\n this.isProxyActive = true;\n return [sessionId, caps];\n }\n\n async deleteSession () {\n this.log.info('Ending Safari session');\n await this._screenRecorder?.stop(true);\n await this.safari?.stop();\n this.resetState();\n\n await super.deleteSession();\n }\n}\n\nexport default SafariDriver;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAEA,MAAMO,QAAQ,GAAG,CACf,CAAC,KAAK,EAAE,IAAIC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAC7C,CAAC,MAAM,EAAE,IAAIA,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAC9C,CAAC,MAAM,EAAE,IAAIA,MAAM,CAAC,0CAA0C,CAAC,CAAC,EAChE,CAAC,MAAM,EAAE,IAAIA,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAElD,CAAC,QAAQ,EAAE,IAAIA,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAClD;AAED,MAAMC,YAAY,SAASC,kBAAU,CAAC;EAEpC,OAAOC,YAAY,GAAGA,uBAAY;EAElCC,WAAWA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;IACtB,KAAK,CAACA,IAAI,CAAC;IACX,IAAI,CAACC,qBAAqB,GAAGA,kCAAqB;IAClD,IAAI,CAACC,iBAAiB,GAAG,CACvB,OAAO,EACP,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EAEd,IAAI,EACJ,MAAM,CACP;IACD,IAAI,CAACC,UAAU,CAAC,CAAC;IAEjB,KAAK,MAAM,CAACC,GAAG,EAAEC,EAAE,CAAC,IAAIC,eAAC,CAACC,OAAO,CAACC,cAAQ,CAAC,EAAE;MAC3CZ,YAAY,CAACa,SAAS,CAACL,GAAG,CAAC,GAAGC,EAAE;IAClC;EACF;EAEAF,UAAUA,CAAA,EAAI;IACZ,IAAI,CAACO,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB,IAAI,CAACC,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACC,eAAe,GAAG,IAAI;EAC7B;EAEAC,WAAWA,CAAA,EAAI;IACb,OAAO,IAAI,CAACF,aAAa;EAC3B;EAEAG,iBAAiBA,CAAA,EAAI;IACnB,OAAOrB,QAAQ;EACjB;EAEAsB,QAAQA,CAAA,EAAI;IACV,OAAO,IAAI;EACb;EAEA,MAAMC,aAAaA,CAAE,GAAGC,IAAI,EAAE;IAC5B,MAAM,CAACC,SAAS,EAAEC,IAAI,CAAC,GAAG,MAAM,KAAK,CAACH,aAAa,CAAC,GAAGC,IAAI,CAAC;IAC5D,IAAI,CAACR,MAAM,GAAG,IAAIW,eAAkB,CAAC,IAAI,CAACC,GAAG,CAAC;IAC9C,IAAI;MACF,MAAM,IAAI,CAACZ,MAAM,CAACa,KAAK,CAAC,IAAAC,0BAAmB,EAACJ,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;MAC1B,MAAMD,CAAC;IACT;IACA,IAAI,CAACd,WAAW,GAAG,IAAI,CAACD,MAAM,CAACiB,KAAK,CAAChB,WAAW,CAACiB,IAAI,CAAC,IAAI,CAAClB,MAAM,CAACiB,KAAK,CAAC;IACxE,IAAI,CAACf,aAAa,GAAG,IAAI;IACzB,OAAO,CAACO,SAAS,EAAEC,IAAI,CAAC;EAC1B;EAEA,MAAMM,aAAaA,CAAA,EAAI;IAAA,IAAAG,qBAAA,EAAAC,YAAA;IACrB,IAAI,CAACR,GAAG,CAACS,IAAI,CAAC,uBAAuB,CAAC;IACtC,QAAAF,qBAAA,GAAM,IAAI,CAAChB,eAAe,cAAAgB,qBAAA,uBAApBA,qBAAA,CAAsBG,IAAI,CAAC,IAAI,CAAC;IACtC,QAAAF,YAAA,GAAM,IAAI,CAACpB,MAAM,cAAAoB,YAAA,uBAAXA,YAAA,CAAaE,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC7B,UAAU,CAAC,CAAC;IAEjB,MAAM,KAAK,CAACuB,aAAa,CAAC,CAAC;EAC7B;AACF;AAAC,IAAAO,QAAA,GAEcrC,YAAY;AAAAsC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
package/build/lib/logger.js
CHANGED
|
@@ -9,4 +9,4 @@ var _support = require("appium/support");
|
|
|
9
9
|
const log = _support.logger.getLogger('Safari');
|
|
10
10
|
var _default = log;
|
|
11
11
|
exports.default = _default;
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3VwcG9ydCIsInJlcXVpcmUiLCJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2xvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1NhZmFyaScpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFFQSxNQUFNQyxHQUFHLEdBQUdDLGVBQU0sQ0FBQ0MsU0FBUyxDQUFDLFFBQVEsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFeEJILEdBQUc7QUFBQUksT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
|
package/build/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["log","logger","getLogger"],"sources":["../../lib/logger.js"],"sourcesContent":["import { logger } from 'appium/support';\n\nconst log = logger.getLogger('Safari');\n\nexport default log;\n"],"mappings":";;;;;;;AAAA;AAEA,
|
|
1
|
+
{"version":3,"file":"logger.js","names":["_support","require","log","logger","getLogger","_default","exports","default"],"sources":["../../lib/logger.js"],"sourcesContent":["import { logger } from 'appium/support';\n\nconst log = logger.getLogger('Safari');\n\nexport default log;\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,GAAG,GAAGC,eAAM,CAACC,SAAS,CAAC,QAAQ,CAAC;AAAC,IAAAC,QAAA,GAExBH,GAAG;AAAAI,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
package/build/lib/method-map.js
CHANGED
|
@@ -24,4 +24,4 @@ const newMethodMap = {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
exports.newMethodMap = newMethodMap;
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuZXdNZXRob2RNYXAiLCJQT1NUIiwiY29tbWFuZCIsInBheWxvYWRQYXJhbXMiLCJvcHRpb25hbCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbWV0aG9kLW1hcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbmV3TWV0aG9kTWFwID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKHtcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0YXJ0UmVjb3JkaW5nU2NyZWVuJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHsgb3B0aW9uYWw6IFsnb3B0aW9ucyddIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zdG9wX3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0b3BSZWNvcmRpbmdTY3JlZW4nLFxuICAgICAgcGF5bG9hZFBhcmFtczogeyBvcHRpb25hbDogWydvcHRpb25zJ10gfVxuICAgIH1cbiAgfSxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sTUFBTUEsWUFBWSxHQUF5QjtFQUNoRCxtREFBbUQsRUFBRTtJQUNuREMsSUFBSSxFQUFFO01BQ0pDLE9BQU8sRUFBRSxzQkFBc0I7TUFDL0JDLGFBQWEsRUFBRTtRQUFFQyxRQUFRLEVBQUUsQ0FBQyxTQUFTO01BQUU7SUFDekM7RUFDRixDQUFDO0VBQ0Qsa0RBQWtELEVBQUU7SUFDbERILElBQUksRUFBRTtNQUNKQyxPQUFPLEVBQUUscUJBQXFCO01BQzlCQyxhQUFhLEVBQUU7UUFBRUMsUUFBUSxFQUFFLENBQUMsU0FBUztNQUFFO0lBQ3pDO0VBQ0Y7QUFDRixDQUFFO0FBQUNDLE9BQUEsQ0FBQUwsWUFBQSxHQUFBQSxZQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-map.js","names":["newMethodMap","POST","command","payloadParams","optional"],"sources":["../../lib/method-map.js"],"sourcesContent":["export const newMethodMap = /** @type {const} */ ({\n '/session/:sessionId/appium/start_recording_screen': {\n POST: {\n command: 'startRecordingScreen',\n payloadParams: { optional: ['options'] }\n }\n },\n '/session/:sessionId/appium/stop_recording_screen': {\n POST: {\n command: 'stopRecordingScreen',\n payloadParams: { optional: ['options'] }\n }\n },\n});\n"],"mappings":";;;;;;;AAAO,MAAMA,YAAY,GAAyB;EAChD,mDAAmD,EAAE;IACnDC,IAAI,EAAE;MACJC,OAAO,EAAE,sBAAsB;MAC/BC,aAAa,EAAE;QAAEC,QAAQ,EAAE,CAAC,SAAS;MAAE;IACzC;EACF,CAAC;EACD,kDAAkD,EAAE;IAClDH,IAAI,EAAE;MACJC,OAAO,EAAE,qBAAqB;MAC9BC,aAAa,EAAE;QAAEC,QAAQ,EAAE,CAAC,SAAS;MAAE;IACzC;EACF;AACF,CAAE;
|
|
1
|
+
{"version":3,"file":"method-map.js","names":["newMethodMap","POST","command","payloadParams","optional","exports"],"sources":["../../lib/method-map.js"],"sourcesContent":["export const newMethodMap = /** @type {const} */ ({\n '/session/:sessionId/appium/start_recording_screen': {\n POST: {\n command: 'startRecordingScreen',\n payloadParams: { optional: ['options'] }\n }\n },\n '/session/:sessionId/appium/stop_recording_screen': {\n POST: {\n command: 'stopRecordingScreen',\n payloadParams: { optional: ['options'] }\n }\n },\n});\n"],"mappings":";;;;;;;AAAO,MAAMA,YAAY,GAAyB;EAChD,mDAAmD,EAAE;IACnDC,IAAI,EAAE;MACJC,OAAO,EAAE,sBAAsB;MAC/BC,aAAa,EAAE;QAAEC,QAAQ,EAAE,CAAC,SAAS;MAAE;IACzC;EACF,CAAC;EACD,kDAAkD,EAAE;IAClDH,IAAI,EAAE;MACJC,OAAO,EAAE,qBAAqB;MAC9BC,aAAa,EAAE;QAAEC,QAAQ,EAAE,CAAC,SAAS;MAAE;IACzC;EACF;AACF,CAAE;AAACC,OAAA,CAAAL,YAAA,GAAAA,YAAA"}
|
package/build/lib/safari.js
CHANGED
|
@@ -153,4 +153,4 @@ class SafariDriverServer {
|
|
|
153
153
|
}
|
|
154
154
|
var _default = SafariDriverServer;
|
|
155
155
|
exports.default = _default;
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRF9CSU5BUlkiLCJTVEFSVFVQX1RJTUVPVVQiLCJTQUZBUklfUE9SVF9SQU5HRSIsIlNBRkFSSV9TRVJWRVJfR1VBUkQiLCJ1dGlsIiwiZ2V0TG9ja0ZpbGVHdWFyZCIsInBhdGgiLCJyZXNvbHZlIiwib3MiLCJ0bXBkaXIiLCJ0aW1lb3V0IiwidHJ5UmVjb3ZlcnkiLCJTYWZhcmlQcm94eSIsIkpXUHJveHkiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJtZXRob2QiLCJib2R5IiwiZGlkUHJvY2Vzc0V4aXQiLCJlcnJvcnMiLCJJbnZhbGlkQ29udGV4dEVycm9yIiwiU2FmYXJpRHJpdmVyUHJvY2VzcyIsImNvbnN0cnVjdG9yIiwibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwicG9ydCIsInByb2MiLCJpc1J1bm5pbmciLCJpbml0Iiwic3RhcnRQb3J0IiwiZW5kUG9ydCIsImZpbmRBUG9ydE5vdEluVXNlIiwiZSIsIkVycm9yIiwic2FmYXJpQmluIiwiZnMiLCJ3aGljaCIsIlN1YlByb2Nlc3MiLCJvbiIsInN0ZG91dCIsInN0ZGVyciIsImxpbmUiLCJkZWJ1ZyIsImNvZGUiLCJzaWduYWwiLCJpbmZvIiwic3RhcnQiLCJraWxsIiwic3RvcCIsImlnbiIsIlNBRkFSSV9EUklWRVJfUFJPQ0VTUyIsInByb2Nlc3MiLCJvbmNlIiwiZXhlY1N5bmMiLCJwaWQiLCJTYWZhcmlEcml2ZXJTZXJ2ZXIiLCJwcm94eSIsImNhcHMiLCJzZXJ2ZXIiLCJiYXNlIiwia2VlcEFsaXZlIiwid2FpdEZvckNvbmRpdGlvbiIsImNvbW1hbmQiLCJlcnIiLCJtZXNzYWdlIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsInRlc3QiLCJjYXBhYmlsaXRpZXMiLCJmaXJzdE1hdGNoIiwiYWx3YXlzTWF0Y2giLCJzZXNzaW9uSWQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvc2FmYXJpLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEpXUHJveHksIGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciwgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuY29uc3QgU0RfQklOQVJZID0gJ3NhZmFyaWRyaXZlcic7XG5jb25zdCBTVEFSVFVQX1RJTUVPVVQgPSAxMDAwMDsgLy8gc2Vjb25kc1xuY29uc3QgU0FGQVJJX1BPUlRfUkFOR0UgPSBbNTEwMCwgNTIwMF07XG4vLyBUaGlzIGd1YXJkIGlzIG5lZWRlZCB0byBtYWtlIHN1cmVcbi8vIHdlIG5ldmVyIHJ1biBtdWx0aXBsZSBTYWZhcmkgZHJpdmVyIHByb2Nlc3NlcyBmb3IgdGhlIHNhbWUgQXBwaXVtIHByb2Nlc3NcbmNvbnN0IFNBRkFSSV9TRVJWRVJfR1VBUkQgPSB1dGlsLmdldExvY2tGaWxlR3VhcmQoXG4gIHBhdGgucmVzb2x2ZShvcy50bXBkaXIoKSwgJ3NhZmFyaV9zZXJ2ZXJfZ3VhcmQubG9jaycpLFxuICB7dGltZW91dDogNSwgdHJ5UmVjb3Zlcnk6IHRydWV9XG4pO1xuXG5cbmNsYXNzIFNhZmFyaVByb3h5IGV4dGVuZHMgSldQcm94eSB7XG4gIGFzeW5jIHByb3h5Q29tbWFuZCAodXJsLCBtZXRob2QsIGJvZHkgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZENvbnRleHRFcnJvcihcbiAgICAgICAgYCcke21ldGhvZH0gJHt1cmx9JyBjYW5ub3QgYmUgcHJveGllZCB0byBTYWZhcmkgRHJpdmVyIHNlcnZlciBiZWNhdXNlIGAgK1xuICAgICAgICAndGhlIHByb2Nlc3MgaXMgbm90IHJ1bm5pbmcgKHByb2JhYmx5IGNyYXNoZWQpLiBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzJyk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBzdXBlci5wcm94eUNvbW1hbmQodXJsLCBtZXRob2QsIGJvZHkpO1xuICB9XG59XG5cbmNsYXNzIFNhZmFyaURyaXZlclByb2Nlc3Mge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5sb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdTYWZhcmlEcml2ZXJQcm9jZXNzJyk7XG4gICAgdGhpcy5wb3J0ID0gbnVsbDtcbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvYz8uaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQgKCkge1xuICAgIGF3YWl0IFNBRkFSSV9TRVJWRVJfR1VBUkQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW3N0YXJ0UG9ydCwgZW5kUG9ydF0gPSBTQUZBUklfUE9SVF9SQU5HRTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMucG9ydCA9IGF3YWl0IGZpbmRBUG9ydE5vdEluVXNlKHN0YXJ0UG9ydCwgZW5kUG9ydCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGZpbmQgYW55IGZyZWUgcG9ydCBpbiByYW5nZSAke3N0YXJ0UG9ydH0uLiR7ZW5kUG9ydH0uIGAgK1xuICAgICAgICAgIGBEb3VibGUgY2hlY2sgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBsb2NraW5nIHBvcnRzIHdpdGhpbiB0aGlzIHJhbmdlIGFuZCB0ZXJtaW5hdGUgYCArXG4gICAgICAgICAgYHRoZXNlIHdoaWNoIGFyZSBub3QgbmVlZGVkIGFueW1vcmVgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNhZmFyaUJpbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNhZmFyaUJpbiA9IGF3YWl0IGZzLndoaWNoKFNEX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtTRF9CSU5BUll9IGJpbmFyeSBjYW5ub3QgYmUgZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgcHJlc2VudCBvbiB5b3VyIHN5c3RlbWApO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jID0gbmV3IFN1YlByb2Nlc3Moc2FmYXJpQmluLCBbJy1wJywgdGhpcy5wb3J0LCAnLS1kaWFnbm9zZSddKTtcbiAgICAgIHRoaXMucHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmUgPSBzdGRvdXQgfHwgc3RkZXJyO1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgWyR7U0RfQklOQVJZfV0gJHtsaW5lfWApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnByb2Mub24oJ2V4aXQnLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oYCR7U0RfQklOQVJZfSBoYXMgZXhpdGVkIHdpdGggY29kZSAke2NvZGV9LCBzaWduYWwgJHtzaWduYWx9YCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFN0YXJ0aW5nICcke3NhZmFyaUJpbn0nIG9uIHBvcnQgJHt0aGlzLnBvcnR9YCk7XG4gICAgICBhd2FpdCB0aGlzLnByb2Muc3RhcnQoMCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBraWxsICgpIHtcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvYy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbmdsZSBzZXJ2ZXIgcHJvY2VzcyBwZXIgQXBwaXVtIGluc3RhbmNlXG5jb25zdCBTQUZBUklfRFJJVkVSX1BST0NFU1MgPSBuZXcgU2FmYXJpRHJpdmVyUHJvY2VzcygpO1xucHJvY2Vzcy5vbmNlKCdleGl0JywgKCkgPT4ge1xuICBpZiAoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZykge1xuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyhga2lsbCAke1NBRkFSSV9EUklWRVJfUFJPQ0VTUy5wcm9jLnBpZH1gKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbn0pO1xuXG5jbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAobG9nKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5wcm94eSA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBzdGFydCAoY2Fwcykge1xuICAgIGF3YWl0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pbml0KCk7XG5cbiAgICB0aGlzLnByb3h5ID0gbmV3IFNhZmFyaVByb3h5KHtcbiAgICAgIHNlcnZlcjogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiBTQUZBUklfRFJJVkVSX1BST0NFU1MucG9ydCxcbiAgICAgIGJhc2U6ICcnLFxuICAgICAgbG9nOiB0aGlzLmxvZyxcbiAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gZmFsc2U7XG4gICAgU0FGQVJJX0RSSVZFUl9QUk9DRVNTLnByb2Mub24oJ2V4aXQnLCAoKSA9PiB7XG4gICAgICB0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0ID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLnByb3h5LmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTVEFSVFVQX1RJTUVPVVQsXG4gICAgICAgIGludGVydmFsTXM6IDEwMDAsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoL0NvbmRpdGlvbiB1bm1ldC8udGVzdChlLm1lc3NhZ2UpKSB7XG4gICAgICAgIGlmIChTQUZBUklfRFJJVkVSX1BST0NFU1MuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgLy8gYXZvaWQgXCJmcm96ZW5cIiBwcm9jZXNzZXMsXG4gICAgICAgICAgYXdhaXQgU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmtpbGwoKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNhZmFyaSBEcml2ZXIgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgd2l0aGluICR7U1RBUlRVUF9USU1FT1VUfW1zIHRpbWVvdXQuIGAgK1xuICAgICAgICAgIGBNYWtlIHN1cmUgaXQgaGFzIGJlZW4gZXhlY3V0ZWQgbWFudWFsbHkgYXQgbGVhc3Qgb25jZSB3aXRoICctLWVuYWJsZScgY29tbWFuZCBsaW5lIGFyZ3VtZW50LiBgICtcbiAgICAgICAgICBgQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlsc2ApO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoJy9zZXNzaW9uJywgJ1BPU1QnLCB7XG4gICAgICBjYXBhYmlsaXRpZXM6IHtcbiAgICAgICAgZmlyc3RNYXRjaDogW3t9XSxcbiAgICAgICAgYWx3YXlzTWF0Y2g6IGNhcHMsXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgc3RvcHBlZCwgYmVjYXVzZSB0aGUgc2VydmVyIGlzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJveHk/LnNlc3Npb25JZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKGAvc2Vzc2lvbi8ke3RoaXMucHJveHkuc2Vzc2lvbklkfWAsICdERUxFVEUnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgJHtTRF9CSU5BUll9IHNlc3Npb24gY2Fubm90IGJlIGRlbGV0ZWQuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2FmYXJpRHJpdmVyU2VydmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxTQUFTLEdBQUcsY0FBYztBQUNoQyxNQUFNQyxlQUFlLEdBQUcsS0FBSztBQUM3QixNQUFNQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFHdEMsTUFBTUMsbUJBQW1CLEdBQUdDLGFBQUksQ0FBQ0MsZ0JBQWdCLENBQy9DQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBRSxDQUFDQyxN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
|
|
156
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2RyaXZlciIsIl9zdXBwb3J0IiwiX3RlZW5fcHJvY2VzcyIsIl9hc3luY2JveCIsIl9wb3J0c2Nhbm5lciIsIl9jaGlsZF9wcm9jZXNzIiwiU0RfQklOQVJZIiwiU1RBUlRVUF9USU1FT1VUIiwiU0FGQVJJX1BPUlRfUkFOR0UiLCJTQUZBUklfU0VSVkVSX0dVQVJEIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJwYXRoIiwicmVzb2x2ZSIsIm9zIiwidG1wZGlyIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwiU2FmYXJpUHJveHkiLCJKV1Byb3h5IiwicHJveHlDb21tYW5kIiwidXJsIiwibWV0aG9kIiwiYm9keSIsImRpZFByb2Nlc3NFeGl0IiwiZXJyb3JzIiwiSW52YWxpZENvbnRleHRFcnJvciIsIlNhZmFyaURyaXZlclByb2Nlc3MiLCJjb25zdHJ1Y3RvciIsImxvZyIsImxvZ2dlciIsImdldExvZ2dlciIsInBvcnQiLCJwcm9jIiwiaXNSdW5uaW5nIiwiX3RoaXMkcHJvYyIsImluaXQiLCJzdGFydFBvcnQiLCJlbmRQb3J0IiwiZmluZEFQb3J0Tm90SW5Vc2UiLCJlIiwiRXJyb3IiLCJzYWZhcmlCaW4iLCJmcyIsIndoaWNoIiwiU3ViUHJvY2VzcyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwibGluZSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsImluZm8iLCJzdGFydCIsImtpbGwiLCJzdG9wIiwiaWduIiwiU0FGQVJJX0RSSVZFUl9QUk9DRVNTIiwicHJvY2VzcyIsIm9uY2UiLCJleGVjU3luYyIsInBpZCIsIlNhZmFyaURyaXZlclNlcnZlciIsInByb3h5IiwiY2FwcyIsInNlcnZlciIsImJhc2UiLCJrZWVwQWxpdmUiLCJ3YWl0Rm9yQ29uZGl0aW9uIiwiY29tbWFuZCIsImVyciIsIm1lc3NhZ2UiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwidGVzdCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsIl90aGlzJHByb3h5Iiwic2Vzc2lvbklkIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zYWZhcmkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSldQcm94eSwgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyLCB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgZmluZEFQb3J0Tm90SW5Vc2UgfSBmcm9tICdwb3J0c2Nhbm5lcic7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5jb25zdCBTRF9CSU5BUlkgPSAnc2FmYXJpZHJpdmVyJztcbmNvbnN0IFNUQVJUVVBfVElNRU9VVCA9IDEwMDAwOyAvLyBzZWNvbmRzXG5jb25zdCBTQUZBUklfUE9SVF9SQU5HRSA9IFs1MTAwLCA1MjAwXTtcbi8vIFRoaXMgZ3VhcmQgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZVxuLy8gd2UgbmV2ZXIgcnVuIG11bHRpcGxlIFNhZmFyaSBkcml2ZXIgcHJvY2Vzc2VzIGZvciB0aGUgc2FtZSBBcHBpdW0gcHJvY2Vzc1xuY29uc3QgU0FGQVJJX1NFUlZFUl9HVUFSRCA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChcbiAgcGF0aC5yZXNvbHZlKG9zLnRtcGRpcigpLCAnc2FmYXJpX3NlcnZlcl9ndWFyZC5sb2NrJyksXG4gIHt0aW1lb3V0OiA1LCB0cnlSZWNvdmVyeTogdHJ1ZX1cbik7XG5cblxuY2xhc3MgU2FmYXJpUHJveHkgZXh0ZW5kcyBKV1Byb3h5IHtcbiAgYXN5bmMgcHJveHlDb21tYW5kICh1cmwsIG1ldGhvZCwgYm9keSA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5kaWRQcm9jZXNzRXhpdCkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQ29udGV4dEVycm9yKFxuICAgICAgICBgJyR7bWV0aG9kfSAke3VybH0nIGNhbm5vdCBiZSBwcm94aWVkIHRvIFNhZmFyaSBEcml2ZXIgc2VydmVyIGJlY2F1c2UgYCArXG4gICAgICAgICd0aGUgcHJvY2VzcyBpcyBub3QgcnVubmluZyAocHJvYmFibHkgY3Jhc2hlZCkuIENoZWNrIHRoZSBzZXJ2ZXIgbG9nIGZvciBtb3JlIGRldGFpbHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnByb3h5Q29tbWFuZCh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cbn1cblxuY2xhc3MgU2FmYXJpRHJpdmVyUHJvY2VzcyB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLmxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1NhZmFyaURyaXZlclByb2Nlc3MnKTtcbiAgICB0aGlzLnBvcnQgPSBudWxsO1xuICAgIHRoaXMucHJvYyA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9jPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgaW5pdCAoKSB7XG4gICAgYXdhaXQgU0FGQVJJX1NFUlZFUl9HVUFSRChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBbc3RhcnRQb3J0LCBlbmRQb3J0XSA9IFNBRkFSSV9QT1JUX1JBTkdFO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5wb3J0ID0gYXdhaXQgZmluZEFQb3J0Tm90SW5Vc2Uoc3RhcnRQb3J0LCBlbmRQb3J0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDYW5ub3QgZmluZCBhbnkgZnJlZSBwb3J0IGluIHJhbmdlICR7c3RhcnRQb3J0fS4uJHtlbmRQb3J0fS4gYCArXG4gICAgICAgICAgYERvdWJsZSBjaGVjayB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGxvY2tpbmcgcG9ydHMgd2l0aGluIHRoaXMgcmFuZ2UgYW5kIHRlcm1pbmF0ZSBgICtcbiAgICAgICAgICBgdGhlc2Ugd2hpY2ggYXJlIG5vdCBuZWVkZWQgYW55bW9yZWApO1xuICAgICAgfVxuXG4gICAgICBsZXQgc2FmYXJpQmluO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2FmYXJpQmluID0gYXdhaXQgZnMud2hpY2goU0RfQklOQVJZKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke1NEX0JJTkFSWX0gYmluYXJ5IGNhbm5vdCBiZSBmb3VuZCBpbiBQQVRILiBgICtcbiAgICAgICAgICBgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBwcmVzZW50IG9uIHlvdXIgc3lzdGVtYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2MgPSBuZXcgU3ViUHJvY2VzcyhzYWZhcmlCaW4sIFsnLXAnLCB0aGlzLnBvcnQsICctLWRpYWdub3NlJ10pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgY29uc3QgbGluZSA9IHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBbJHtTRF9CSU5BUll9XSAke2xpbmV9YCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgJHtTRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2cuaW5mbyhgU3RhcnRpbmcgJyR7c2FmYXJpQmlufScgb24gcG9ydCAke3RoaXMucG9ydH1gKTtcbiAgICAgIGF3YWl0IHRoaXMucHJvYy5zdGFydCgwKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGtpbGwgKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9jLnN0b3AoJ1NJR0tJTEwnKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG4gIH1cbn1cblxuLy8gU2luZ2xlIHNlcnZlciBwcm9jZXNzIHBlciBBcHBpdW0gaW5zdGFuY2VcbmNvbnN0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUyA9IG5ldyBTYWZhcmlEcml2ZXJQcm9jZXNzKCk7XG5wcm9jZXNzLm9uY2UoJ2V4aXQnLCAoKSA9PiB7XG4gIGlmIChTQUZBUklfRFJJVkVSX1BST0NFU1MuaXNSdW5uaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGV4ZWNTeW5jKGBraWxsICR7U0FGQVJJX0RSSVZFUl9QUk9DRVNTLnByb2MucGlkfWApO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxufSk7XG5cbmNsYXNzIFNhZmFyaURyaXZlclNlcnZlciB7XG4gIGNvbnN0cnVjdG9yIChsb2cpIHtcbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLnByb3h5ID0gbnVsbDtcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhIShTQUZBUklfRFJJVkVSX1BST0NFU1MuaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0IChjYXBzKSB7XG4gICAgYXdhaXQgU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmluaXQoKTtcblxuICAgIHRoaXMucHJveHkgPSBuZXcgU2FmYXJpUHJveHkoe1xuICAgICAgc2VydmVyOiAnMTI3LjAuMC4xJyxcbiAgICAgIHBvcnQ6IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5wb3J0LFxuICAgICAgYmFzZTogJycsXG4gICAgICBsb2c6IHRoaXMubG9nLFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSBmYWxzZTtcbiAgICBTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1Mua2lsbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmYXJpIERyaXZlciBzZXJ2ZXIgaXMgbm90IGxpc3RlbmluZyB3aXRoaW4gJHtTVEFSVFVQX1RJTUVPVVR9bXMgdGltZW91dC4gYCArXG4gICAgICAgICAgYE1ha2Ugc3VyZSBpdCBoYXMgYmVlbiBleGVjdXRlZCBtYW51YWxseSBhdCBsZWFzdCBvbmNlIHdpdGggJy0tZW5hYmxlJyBjb21tYW5kIGxpbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgICAgICBhbHdheXNNYXRjaDogY2FwcyxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMubG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBzdG9wcGVkLCBiZWNhdXNlIHRoZSBzZXJ2ZXIgaXMgbm90IHJ1bm5pbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm94eT8uc2Vzc2lvbklkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoYC9zZXNzaW9uLyR7dGhpcy5wcm94eS5zZXNzaW9uSWR9YCwgJ0RFTEVURScpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgZGVsZXRlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTYWZhcmlEcml2ZXJTZXJ2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFB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
|