@appium/base-driver 8.2.3 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/basedriver/capabilities.js +2 -4
- package/build/lib/basedriver/commands/event.js +2 -4
- package/build/lib/basedriver/commands/find.js +5 -14
- package/build/lib/basedriver/commands/index.js +2 -4
- package/build/lib/basedriver/commands/log.js +4 -9
- package/build/lib/basedriver/commands/session.js +19 -30
- package/build/lib/basedriver/commands/settings.js +5 -11
- package/build/lib/basedriver/commands/timeout.js +11 -18
- package/build/lib/basedriver/desired-caps.js +2 -4
- package/build/lib/basedriver/device-settings.js +15 -5
- package/build/lib/basedriver/driver.js +36 -23
- package/build/lib/basedriver/helpers.js +10 -12
- package/build/lib/basedriver/logger.js +2 -4
- package/build/lib/constants.js +2 -4
- package/build/lib/express/crash.js +2 -4
- package/build/lib/express/express-logging.js +3 -5
- package/build/lib/express/idempotency.js +3 -5
- package/build/lib/express/logger.js +2 -4
- package/build/lib/express/middleware.js +2 -4
- package/build/lib/express/server.js +2 -4
- package/build/lib/express/static.js +2 -4
- package/build/lib/express/websocket.js +2 -4
- package/build/lib/helpers/capabilities.js +37 -0
- package/build/lib/index.js +4 -8
- package/build/lib/jsonwp-proxy/protocol-converter.js +19 -15
- package/build/lib/jsonwp-proxy/proxy.js +20 -15
- package/build/lib/jsonwp-status/status.js +2 -4
- package/build/lib/protocol/errors.js +2 -4
- package/build/lib/protocol/helpers.js +2 -4
- package/build/lib/protocol/index.js +2 -4
- package/build/lib/protocol/protocol.js +37 -30
- package/build/lib/protocol/routes.js +68 -4
- package/build/lib/protocol/validators.js +2 -4
- package/build/test/basedriver/README.md +5 -0
- package/build/test/basedriver/driver-e2e-tests.js +2 -4
- package/build/test/basedriver/driver-tests.js +12 -17
- package/build/test/basedriver/index.js +2 -4
- package/build/test/e2e/basedriver/driver.e2e.spec.js +15 -0
- package/build/test/e2e/basedriver/helpers.e2e.spec.js +192 -0
- package/build/test/e2e/basedriver/websockets.e2e.spec.js +82 -0
- package/build/test/e2e/express/server.e2e.spec.js +159 -0
- package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +59 -0
- package/build/test/e2e/protocol/fake-driver.js +163 -0
- package/build/test/e2e/protocol/helpers.js +25 -0
- package/build/test/e2e/protocol/protocol.e2e.spec.js +1186 -0
- package/build/test/helpers.js +2 -4
- package/build/test/unit/basedriver/capabilities.spec.js +672 -0
- package/build/test/unit/basedriver/capability.spec.js +353 -0
- package/build/test/unit/basedriver/commands/event.spec.js +110 -0
- package/build/test/unit/basedriver/commands/log.spec.js +85 -0
- package/build/test/unit/basedriver/driver.spec.js +15 -0
- package/build/test/unit/basedriver/helpers.spec.js +151 -0
- package/build/test/unit/basedriver/timeout.spec.js +135 -0
- package/build/test/unit/express/server.spec.js +155 -0
- package/build/test/unit/express/static.spec.js +26 -0
- package/build/test/unit/jsonwp-proxy/mock-request.js +91 -0
- package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +171 -0
- package/build/test/unit/jsonwp-proxy/proxy.spec.js +292 -0
- package/build/test/unit/jsonwp-proxy/url.spec.js +165 -0
- package/build/test/unit/jsonwp-status/status.spec.js +34 -0
- package/build/test/unit/protocol/errors.spec.js +390 -0
- package/build/test/unit/protocol/routes.spec.js +80 -0
- package/build/test/unit/protocol/validator.spec.js +149 -0
- package/lib/basedriver/commands/find.js +3 -6
- package/lib/basedriver/commands/log.js +2 -4
- package/lib/basedriver/commands/session.js +21 -22
- package/lib/basedriver/commands/settings.js +3 -5
- package/lib/basedriver/commands/timeout.js +9 -10
- package/lib/basedriver/device-settings.js +10 -1
- package/lib/basedriver/driver.js +36 -12
- package/lib/basedriver/helpers.js +13 -11
- package/lib/express/express-logging.js +1 -1
- package/lib/express/idempotency.js +1 -1
- package/lib/helpers/capabilities.js +25 -0
- package/lib/index.js +2 -2
- package/lib/jsonwp-proxy/protocol-converter.js +14 -13
- package/lib/jsonwp-proxy/proxy.js +16 -12
- package/lib/protocol/protocol.js +34 -29
- package/lib/protocol/routes.js +60 -1
- package/package.json +36 -24
- package/test/basedriver/README.md +5 -0
- package/test/basedriver/driver-e2e-tests.js +1 -1
- package/test/basedriver/driver-tests.js +12 -7
- package/build/lib/protocol/sessions-cache.js +0 -88
- package/build/test/basedriver/capabilities-specs.js +0 -632
- package/build/test/basedriver/capability-specs.js +0 -396
- package/build/test/basedriver/commands/event-specs.js +0 -112
- package/build/test/basedriver/commands/log-specs.js +0 -80
- package/build/test/basedriver/driver-e2e-specs.js +0 -17
- package/build/test/basedriver/driver-specs.js +0 -17
- package/build/test/basedriver/helpers-e2e-specs.js +0 -194
- package/build/test/basedriver/helpers-specs.js +0 -153
- package/build/test/basedriver/timeout-specs.js +0 -139
- package/build/test/basedriver/websockets-e2e-specs.js +0 -84
- package/build/test/express/server-e2e-specs.js +0 -156
- package/build/test/express/server-specs.js +0 -151
- package/build/test/express/static-specs.js +0 -23
- package/build/test/jsonwp-proxy/mock-request.js +0 -93
- package/build/test/jsonwp-proxy/protocol-converter-specs.js +0 -173
- package/build/test/jsonwp-proxy/proxy-e2e-specs.js +0 -61
- package/build/test/jsonwp-proxy/proxy-specs.js +0 -294
- package/build/test/jsonwp-proxy/url-specs.js +0 -167
- package/build/test/jsonwp-status/status-specs.js +0 -36
- package/build/test/protocol/errors-specs.js +0 -388
- package/build/test/protocol/fake-driver.js +0 -168
- package/build/test/protocol/helpers.js +0 -27
- package/build/test/protocol/protocol-e2e-specs.js +0 -1182
- package/build/test/protocol/routes-specs.js +0 -82
- package/build/test/protocol/validator-specs.js +0 -151
- package/lib/protocol/sessions-cache.js +0 -74
- package/test/basedriver/capabilities-specs.js +0 -505
- package/test/basedriver/capability-specs.js +0 -409
- package/test/basedriver/commands/event-specs.js +0 -74
- package/test/basedriver/commands/log-specs.js +0 -70
- package/test/basedriver/driver-e2e-specs.js +0 -8
- package/test/basedriver/driver-specs.js +0 -8
- package/test/basedriver/fixtures/BadZippedApp.zip +0 -1
- package/test/basedriver/fixtures/FakeAndroidApp.apk +0 -1
- package/test/basedriver/fixtures/FakeAndroidApp.asd +0 -0
- package/test/basedriver/fixtures/FakeIOSApp.app +0 -1
- package/test/basedriver/fixtures/FakeIOSApp.app.zip +0 -0
- package/test/basedriver/fixtures/FakeIOSApp.ipa +0 -0
- package/test/basedriver/fixtures/custom-element-finder-bad.js +0 -5
- package/test/basedriver/fixtures/custom-element-finder.js +0 -29
- package/test/basedriver/helpers-e2e-specs.js +0 -187
- package/test/basedriver/helpers-specs.js +0 -137
- package/test/basedriver/timeout-specs.js +0 -133
- package/test/basedriver/websockets-e2e-specs.js +0 -75
package/build/test/helpers.js
CHANGED
|
@@ -51,7 +51,5 @@ const createAppiumURL = (0, _lodash.curry)((address, port, session, pathname) =>
|
|
|
51
51
|
let url = new URL(path, `${address}:${port}`);
|
|
52
52
|
return url.href;
|
|
53
53
|
}, 4);
|
|
54
|
-
exports.createAppiumURL = createAppiumURL;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6WyJURVNUX0hPU1QiLCJNRVRIT0RTIiwiUE9TVCIsIkRFTEVURSIsInRlc3RQb3J0IiwiZ2V0VGVzdFBvcnQiLCJmb3JjZSIsInBvcnQiLCJjcmVhdGVBcHBpdW1VUkwiLCJhZGRyZXNzIiwic2Vzc2lvbiIsInBhdGhuYW1lIiwidGVzdCIsInBhdGgiLCJ1cmwiLCJVUkwiLCJocmVmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUcsV0FBbEI7O0FBS0EsTUFBTUMsT0FBTyxHQUFHO0FBQ2RDLEVBQUFBLElBQUksRUFBRSxNQURRO0FBRWRDLEVBQUFBLE1BQU0sRUFBRTtBQUZNLENBQWhCOztBQUtBLElBQUlDLFFBQUo7O0FBTUEsZUFBZUMsV0FBZixDQUE0QkMsS0FBSyxHQUFHLEtBQXBDLEVBQTJDO0FBQ3pDLE1BQUlBLEtBQUssSUFBSSxDQUFDRixRQUFkLEVBQXdCO0FBQ3RCLFFBQUlHLElBQUksR0FBRyxNQUFNLHVCQUFqQjs7QUFDQSxRQUFJLENBQUNILFFBQUwsRUFBZTtBQUNiQSxNQUFBQSxRQUFRLEdBQUdHLElBQVg7QUFDRDs7QUFDRCxXQUFPQSxJQUFQO0FBQ0Q7O0FBQ0QsU0FBT0gsUUFBUDtBQUNEOztBQUVELE1BQU1JLGVBQWUsR0FBRyxtQkEyQnRCLENBQUNDLE9BQUQsRUFBVUYsSUFBVixFQUFnQkcsT0FBaEIsRUFBeUJDLFFBQXpCLEtBQXNDO0FBQ3BDLE1BQUksQ0FBQyxlQUFlQyxJQUFmLENBQW9CSCxPQUFwQixDQUFMLEVBQW1DO0FBQ2pDQSxJQUFBQSxPQUFPLEdBQUksVUFBU0EsT0FBUSxFQUE1QjtBQUNEOztBQUNELE1BQUlJLElBQUksR0FBR0gsT0FBTyxHQUFJLFdBQVVBLE9BQVEsRUFBdEIsR0FBMEIsRUFBNUM7O0FBQ0EsTUFBSUMsUUFBSixFQUFjO0FBQ1pFLElBQUFBLElBQUksR0FBSSxHQUFFQSxJQUFLLElBQUdGLFFBQVMsRUFBM0I7QUFDRDs7QUFDRCxNQUFJRyxHQUFHLEdBQUcsSUFBSUMsR0FBSixDQUFRRixJQUFSLEVBQWUsR0FBRUosT0FBUSxJQUFHRixJQUFLLEVBQWpDLENBQVY7QUFDQSxTQUFPTyxHQUFHLENBQUNFLElBQVg7QUFDRCxDQXJDcUIsRUFzQ3RCLENBdENzQixDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRQb3J0IGZyb20gJ2dldC1wb3J0JztcbmltcG9ydCB7Y3Vycnl9IGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IFRFU1RfSE9TVCA9ICcxMjcuMC4wLjEnO1xuXG4vKipcbiAqIFNvbWUgSFRUUCBtZXRob2RzLCBmb3IgeW91ciBwbGVhc3VyZVxuICovXG5jb25zdCBNRVRIT0RTID0ge1xuICBQT1NUOiAnUE9TVCcsXG4gIERFTEVURTogJ0RFTEVURSdcbn07XG5cbmxldCB0ZXN0UG9ydDtcbi8qKlxuICogUmV0dXJucyBhIGZyZWUgcG9ydDsgb25lIHBlciBwcm9jZXNzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZV0gLSBJZiB0cnVlLCBkbyBub3QgcmV1c2UgdGhlIHBvcnQgKGlmIGl0IGFscmVhZHkgZXhpc3RzKVxuICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gYSBmcmVlIHBvcnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VGVzdFBvcnQgKGZvcmNlID0gZmFsc2UpIHtcbiAgaWYgKGZvcmNlIHx8ICF0ZXN0UG9ydCkge1xuICAgIGxldCBwb3J0ID0gYXdhaXQgZ2V0UG9ydCgpO1xuICAgIGlmICghdGVzdFBvcnQpIHtcbiAgICAgIHRlc3RQb3J0ID0gcG9ydDtcbiAgICB9XG4gICAgcmV0dXJuIHBvcnQ7XG4gIH1cbiAgcmV0dXJuIHRlc3RQb3J0O1xufVxuXG5jb25zdCBjcmVhdGVBcHBpdW1VUkwgPSBjdXJyeShcbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEFwcGl1bSBVUkwgZnJvbSBjb21wb25lbnRzLlxuICAgKlxuICAgKiAqKkFsbCoqIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkLiAgUHJvdmlkZSBhbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlmIHlvdSBkb24ndCBuZWVkIG9uZS5cbiAgICogVG8gcmVhcnJhbmdlIGFyZ3VtZW50cyAoaWYgbmVlZGVkKSwgdXNlIHRoZSBwbGFjZWhvbGRlciAoYF9gKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBCYXNlIGFkZHJlc3MgKHcvIG9wdGlvbmFsIHByb3RvY29sKVxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IHBvcnQgLSBQb3J0IG51bWJlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbiAtIFNlc3Npb24gSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhuYW1lIC0gRXh0cmEgcGF0aFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBOZXcgVVJMXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG4gICAqXG4gICAqIC8vIGh0dHA6Ly8xMjcuMC4wLjE6MzEzMzcvc2Vzc2lvblxuICAgKiBjcmVhdGVBcHBpdW1VUkwoJzEyNy4wLjAuMScsIDMxMzM3LCAnJywgJ3Nlc3Npb24nKVxuICAgKlxuICAgKiAvLyBodHRwOi8vMTI3LjAuMC4xOjMxMzM3L3Nlc3Npb24vYXNkZmdqa2xcbiAgICogY29uc3QgY3JlYXRlU2Vzc2lvblVSTCA9IGNyZWF0ZUFwcGl1bVVSTCgnMTI3LjAuMC4xJywgMzEzMzcsIF8sICdzZXNzaW9uJylcbiAgICogY3JlYXRlU2Vzc2lvblVSTCgnYXNkZmdqa2wnKVxuICAgKlxuICAgKiAvLyBodHRwOi8vMTI3LjAuMC4xOjMxMzM3L3Nlc3Npb24vYXNkZmdqa2wvYXBwaXVtL2V4ZWN1dGVcbiAgICogY29uc3QgY3JlYXRlVVJMV2l0aFBhdGggPSBjcmVhdGVBcHBpdW1VUkwoJzEyNy4wLjAuMScsIDMxMzM3LCAnYXNkZmdqa2wnKTtcbiAgICogY3JlYXRlVVJMV2l0aFBhdGgoJ2FwcGl1bS9leGVjdXRlJylcbiAgICovXG4gIChhZGRyZXNzLCBwb3J0LCBzZXNzaW9uLCBwYXRobmFtZSkgPT4ge1xuICAgIGlmICghL15odHRwcz86XFwvXFwvLy50ZXN0KGFkZHJlc3MpKSB7XG4gICAgICBhZGRyZXNzID0gYGh0dHA6Ly8ke2FkZHJlc3N9YDtcbiAgICB9XG4gICAgbGV0IHBhdGggPSBzZXNzaW9uID8gYHNlc3Npb24vJHtzZXNzaW9ufWAgOiAnJztcbiAgICBpZiAocGF0aG5hbWUpIHtcbiAgICAgIHBhdGggPSBgJHtwYXRofS8ke3BhdGhuYW1lfWA7XG4gICAgfVxuICAgIGxldCB1cmwgPSBuZXcgVVJMKHBhdGgsIGAke2FkZHJlc3N9OiR7cG9ydH1gKTtcbiAgICByZXR1cm4gdXJsLmhyZWY7XG4gIH0sXG4gIDQsXG4pO1xuXG5leHBvcnQge1RFU1RfSE9TVCwgTUVUSE9EUywgZ2V0VGVzdFBvcnQsIGNyZWF0ZUFwcGl1bVVSTH07XG4iXSwiZmlsZSI6InRlc3QvaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
|
54
|
+
exports.createAppiumURL = createAppiumURL;
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6WyJURVNUX0hPU1QiLCJNRVRIT0RTIiwiUE9TVCIsIkRFTEVURSIsInRlc3RQb3J0IiwiZ2V0VGVzdFBvcnQiLCJmb3JjZSIsInBvcnQiLCJjcmVhdGVBcHBpdW1VUkwiLCJhZGRyZXNzIiwic2Vzc2lvbiIsInBhdGhuYW1lIiwidGVzdCIsInBhdGgiLCJ1cmwiLCJVUkwiLCJocmVmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUcsV0FBbEI7O0FBS0EsTUFBTUMsT0FBTyxHQUFHO0FBQ2RDLEVBQUFBLElBQUksRUFBRSxNQURRO0FBRWRDLEVBQUFBLE1BQU0sRUFBRTtBQUZNLENBQWhCOztBQUtBLElBQUlDLFFBQUo7O0FBTUEsZUFBZUMsV0FBZixDQUE0QkMsS0FBSyxHQUFHLEtBQXBDLEVBQTJDO0FBQ3pDLE1BQUlBLEtBQUssSUFBSSxDQUFDRixRQUFkLEVBQXdCO0FBQ3RCLFFBQUlHLElBQUksR0FBRyxNQUFNLHVCQUFqQjs7QUFDQSxRQUFJLENBQUNILFFBQUwsRUFBZTtBQUNiQSxNQUFBQSxRQUFRLEdBQUdHLElBQVg7QUFDRDs7QUFDRCxXQUFPQSxJQUFQO0FBQ0Q7O0FBQ0QsU0FBT0gsUUFBUDtBQUNEOztBQUVELE1BQU1JLGVBQWUsR0FBRyxtQkEyQnRCLENBQUNDLE9BQUQsRUFBVUYsSUFBVixFQUFnQkcsT0FBaEIsRUFBeUJDLFFBQXpCLEtBQXNDO0FBQ3BDLE1BQUksQ0FBQyxlQUFlQyxJQUFmLENBQW9CSCxPQUFwQixDQUFMLEVBQW1DO0FBQ2pDQSxJQUFBQSxPQUFPLEdBQUksVUFBU0EsT0FBUSxFQUE1QjtBQUNEOztBQUNELE1BQUlJLElBQUksR0FBR0gsT0FBTyxHQUFJLFdBQVVBLE9BQVEsRUFBdEIsR0FBMEIsRUFBNUM7O0FBQ0EsTUFBSUMsUUFBSixFQUFjO0FBQ1pFLElBQUFBLElBQUksR0FBSSxHQUFFQSxJQUFLLElBQUdGLFFBQVMsRUFBM0I7QUFDRDs7QUFDRCxNQUFJRyxHQUFHLEdBQUcsSUFBSUMsR0FBSixDQUFRRixJQUFSLEVBQWUsR0FBRUosT0FBUSxJQUFHRixJQUFLLEVBQWpDLENBQVY7QUFDQSxTQUFPTyxHQUFHLENBQUNFLElBQVg7QUFDRCxDQXJDcUIsRUFzQ3RCLENBdENzQixDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRQb3J0IGZyb20gJ2dldC1wb3J0JztcbmltcG9ydCB7Y3Vycnl9IGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IFRFU1RfSE9TVCA9ICcxMjcuMC4wLjEnO1xuXG4vKipcbiAqIFNvbWUgSFRUUCBtZXRob2RzLCBmb3IgeW91ciBwbGVhc3VyZVxuICovXG5jb25zdCBNRVRIT0RTID0ge1xuICBQT1NUOiAnUE9TVCcsXG4gIERFTEVURTogJ0RFTEVURSdcbn07XG5cbmxldCB0ZXN0UG9ydDtcbi8qKlxuICogUmV0dXJucyBhIGZyZWUgcG9ydDsgb25lIHBlciBwcm9jZXNzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZV0gLSBJZiB0cnVlLCBkbyBub3QgcmV1c2UgdGhlIHBvcnQgKGlmIGl0IGFscmVhZHkgZXhpc3RzKVxuICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gYSBmcmVlIHBvcnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VGVzdFBvcnQgKGZvcmNlID0gZmFsc2UpIHtcbiAgaWYgKGZvcmNlIHx8ICF0ZXN0UG9ydCkge1xuICAgIGxldCBwb3J0ID0gYXdhaXQgZ2V0UG9ydCgpO1xuICAgIGlmICghdGVzdFBvcnQpIHtcbiAgICAgIHRlc3RQb3J0ID0gcG9ydDtcbiAgICB9XG4gICAgcmV0dXJuIHBvcnQ7XG4gIH1cbiAgcmV0dXJuIHRlc3RQb3J0O1xufVxuXG5jb25zdCBjcmVhdGVBcHBpdW1VUkwgPSBjdXJyeShcbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEFwcGl1bSBVUkwgZnJvbSBjb21wb25lbnRzLlxuICAgKlxuICAgKiAqKkFsbCoqIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkLiAgUHJvdmlkZSBhbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlmIHlvdSBkb24ndCBuZWVkIG9uZS5cbiAgICogVG8gcmVhcnJhbmdlIGFyZ3VtZW50cyAoaWYgbmVlZGVkKSwgdXNlIHRoZSBwbGFjZWhvbGRlciAoYF9gKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBCYXNlIGFkZHJlc3MgKHcvIG9wdGlvbmFsIHByb3RvY29sKVxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IHBvcnQgLSBQb3J0IG51bWJlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbiAtIFNlc3Npb24gSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhuYW1lIC0gRXh0cmEgcGF0aFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBOZXcgVVJMXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG4gICAqXG4gICAqIC8vIGh0dHA6Ly8xMjcuMC4wLjE6MzEzMzcvc2Vzc2lvblxuICAgKiBjcmVhdGVBcHBpdW1VUkwoJzEyNy4wLjAuMScsIDMxMzM3LCAnJywgJ3Nlc3Npb24nKVxuICAgKlxuICAgKiAvLyBodHRwOi8vMTI3LjAuMC4xOjMxMzM3L3Nlc3Npb24vYXNkZmdqa2xcbiAgICogY29uc3QgY3JlYXRlU2Vzc2lvblVSTCA9IGNyZWF0ZUFwcGl1bVVSTCgnMTI3LjAuMC4xJywgMzEzMzcsIF8sICdzZXNzaW9uJylcbiAgICogY3JlYXRlU2Vzc2lvblVSTCgnYXNkZmdqa2wnKVxuICAgKlxuICAgKiAvLyBodHRwOi8vMTI3LjAuMC4xOjMxMzM3L3Nlc3Npb24vYXNkZmdqa2wvYXBwaXVtL2V4ZWN1dGVcbiAgICogY29uc3QgY3JlYXRlVVJMV2l0aFBhdGggPSBjcmVhdGVBcHBpdW1VUkwoJzEyNy4wLjAuMScsIDMxMzM3LCAnYXNkZmdqa2wnKTtcbiAgICogY3JlYXRlVVJMV2l0aFBhdGgoJ2FwcGl1bS9leGVjdXRlJylcbiAgICovXG4gIChhZGRyZXNzLCBwb3J0LCBzZXNzaW9uLCBwYXRobmFtZSkgPT4ge1xuICAgIGlmICghL15odHRwcz86XFwvXFwvLy50ZXN0KGFkZHJlc3MpKSB7XG4gICAgICBhZGRyZXNzID0gYGh0dHA6Ly8ke2FkZHJlc3N9YDtcbiAgICB9XG4gICAgbGV0IHBhdGggPSBzZXNzaW9uID8gYHNlc3Npb24vJHtzZXNzaW9ufWAgOiAnJztcbiAgICBpZiAocGF0aG5hbWUpIHtcbiAgICAgIHBhdGggPSBgJHtwYXRofS8ke3BhdGhuYW1lfWA7XG4gICAgfVxuICAgIGxldCB1cmwgPSBuZXcgVVJMKHBhdGgsIGAke2FkZHJlc3N9OiR7cG9ydH1gKTtcbiAgICByZXR1cm4gdXJsLmhyZWY7XG4gIH0sXG4gIDQsXG4pO1xuXG5leHBvcnQge1RFU1RfSE9TVCwgTUVUSE9EUywgZ2V0VGVzdFBvcnQsIGNyZWF0ZUFwcGl1bVVSTH07XG4iXX0=
|