@appium/base-driver 8.3.1 → 8.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +80 -0
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -0
  3. package/build/lib/basedriver/capabilities.js +11 -10
  4. package/build/lib/basedriver/commands/event.d.ts +9 -0
  5. package/build/lib/basedriver/commands/event.d.ts.map +1 -0
  6. package/build/lib/basedriver/commands/event.js +21 -21
  7. package/build/lib/basedriver/commands/find.d.ts +11 -0
  8. package/build/lib/basedriver/commands/find.d.ts.map +1 -0
  9. package/build/lib/basedriver/commands/find.js +44 -37
  10. package/build/lib/basedriver/commands/index.d.ts +8 -0
  11. package/build/lib/basedriver/commands/index.d.ts.map +1 -0
  12. package/build/lib/basedriver/commands/index.js +17 -14
  13. package/build/lib/basedriver/commands/log.d.ts +12 -0
  14. package/build/lib/basedriver/commands/log.d.ts.map +1 -0
  15. package/build/lib/basedriver/commands/log.js +24 -26
  16. package/build/lib/basedriver/commands/session.d.ts +11 -0
  17. package/build/lib/basedriver/commands/session.d.ts.map +1 -0
  18. package/build/lib/basedriver/commands/session.js +21 -147
  19. package/build/lib/basedriver/commands/settings.d.ts +10 -0
  20. package/build/lib/basedriver/commands/settings.d.ts.map +1 -0
  21. package/build/lib/basedriver/commands/settings.js +19 -17
  22. package/build/lib/basedriver/commands/timeout.d.ts +8 -0
  23. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -0
  24. package/build/lib/basedriver/commands/timeout.js +118 -137
  25. package/build/lib/basedriver/core.d.ts +235 -0
  26. package/build/lib/basedriver/core.d.ts.map +1 -0
  27. package/build/lib/basedriver/core.js +283 -0
  28. package/build/lib/basedriver/desired-caps.d.ts +5 -0
  29. package/build/lib/basedriver/desired-caps.d.ts.map +1 -0
  30. package/build/lib/basedriver/desired-caps.js +1 -1
  31. package/build/lib/basedriver/device-settings.d.ts +32 -0
  32. package/build/lib/basedriver/device-settings.d.ts.map +1 -0
  33. package/build/lib/basedriver/device-settings.js +19 -11
  34. package/build/lib/basedriver/driver.d.ts +83 -0
  35. package/build/lib/basedriver/driver.d.ts.map +1 -0
  36. package/build/lib/basedriver/driver.js +100 -266
  37. package/build/lib/basedriver/helpers.d.ts +132 -0
  38. package/build/lib/basedriver/helpers.d.ts.map +1 -0
  39. package/build/lib/basedriver/helpers.js +17 -1
  40. package/build/lib/basedriver/logger.d.ts +3 -0
  41. package/build/lib/basedriver/logger.d.ts.map +1 -0
  42. package/build/lib/constants.d.ts +9 -0
  43. package/build/lib/constants.d.ts.map +1 -0
  44. package/build/lib/express/crash.d.ts +3 -0
  45. package/build/lib/express/crash.d.ts.map +1 -0
  46. package/build/lib/express/express-logging.d.ts +3 -0
  47. package/build/lib/express/express-logging.d.ts.map +1 -0
  48. package/build/lib/express/idempotency.d.ts +2 -0
  49. package/build/lib/express/idempotency.d.ts.map +1 -0
  50. package/build/lib/express/logger.d.ts +3 -0
  51. package/build/lib/express/logger.d.ts.map +1 -0
  52. package/build/lib/express/middleware.d.ts +9 -0
  53. package/build/lib/express/middleware.d.ts.map +1 -0
  54. package/build/lib/express/server.d.ts +10 -0
  55. package/build/lib/express/server.d.ts.map +1 -0
  56. package/build/lib/express/static.d.ts +6 -0
  57. package/build/lib/express/static.d.ts.map +1 -0
  58. package/build/lib/express/websocket.d.ts +64 -0
  59. package/build/lib/express/websocket.d.ts.map +1 -0
  60. package/build/lib/express/websocket.js +39 -38
  61. package/build/lib/helpers/capabilities.d.ts +13 -0
  62. package/build/lib/helpers/capabilities.d.ts.map +1 -0
  63. package/build/lib/helpers/capabilities.js +41 -1
  64. package/build/lib/index.d.ts +183 -0
  65. package/build/lib/index.d.ts.map +1 -0
  66. package/build/lib/index.js +40 -20
  67. package/build/lib/jsonwp-proxy/protocol-converter.d.ts +48 -0
  68. package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -0
  69. package/build/lib/jsonwp-proxy/proxy.d.ts +41 -0
  70. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -0
  71. package/build/lib/jsonwp-proxy/proxy.js +24 -6
  72. package/build/lib/jsonwp-status/status.d.ts +159 -0
  73. package/build/lib/jsonwp-status/status.d.ts.map +1 -0
  74. package/build/lib/protocol/errors.d.ts +310 -0
  75. package/build/lib/protocol/errors.d.ts.map +1 -0
  76. package/build/lib/protocol/errors.js +81 -2
  77. package/build/lib/protocol/helpers.d.ts +22 -0
  78. package/build/lib/protocol/helpers.d.ts.map +1 -0
  79. package/build/lib/protocol/index.d.ts +16 -0
  80. package/build/lib/protocol/index.d.ts.map +1 -0
  81. package/build/lib/protocol/index.js +7 -7
  82. package/build/lib/protocol/protocol.d.ts +11 -0
  83. package/build/lib/protocol/protocol.d.ts.map +1 -0
  84. package/build/lib/protocol/protocol.js +2 -6
  85. package/build/lib/protocol/routes.d.ts +6 -0
  86. package/build/lib/protocol/routes.d.ts.map +1 -0
  87. package/build/lib/protocol/routes.js +17 -1
  88. package/build/lib/protocol/validators.d.ts +8 -0
  89. package/build/lib/protocol/validators.d.ts.map +1 -0
  90. package/build/test/basedriver/driver-tests.js +30 -3
  91. package/build/test/e2e/basedriver/websockets.e2e.spec.js +12 -7
  92. package/build/test/unit/basedriver/commands/event.spec.js +7 -7
  93. package/build/test/unit/basedriver/commands/log.spec.js +31 -24
  94. package/build/test/unit/basedriver/timeout.spec.js +1 -1
  95. package/build/test/unit/protocol/routes.spec.js +2 -2
  96. package/build/tsconfig.tsbuildinfo +1 -0
  97. package/lib/basedriver/capabilities.js +49 -10
  98. package/lib/basedriver/commands/event.js +49 -31
  99. package/lib/basedriver/commands/find.js +108 -43
  100. package/lib/basedriver/commands/index.js +25 -19
  101. package/lib/basedriver/commands/log.js +60 -33
  102. package/lib/basedriver/commands/session.js +39 -141
  103. package/lib/basedriver/commands/settings.js +33 -13
  104. package/lib/basedriver/commands/timeout.js +153 -153
  105. package/lib/basedriver/core.js +497 -0
  106. package/lib/basedriver/desired-caps.js +1 -1
  107. package/lib/basedriver/device-settings.js +47 -12
  108. package/lib/basedriver/driver.js +273 -395
  109. package/lib/basedriver/helpers.js +18 -2
  110. package/lib/express/websocket.js +35 -32
  111. package/lib/helpers/capabilities.js +60 -1
  112. package/lib/index.js +16 -12
  113. package/lib/jsonwp-proxy/proxy.js +26 -6
  114. package/lib/protocol/errors.js +42 -42
  115. package/lib/protocol/index.js +4 -4
  116. package/lib/protocol/protocol.js +1 -3
  117. package/lib/protocol/routes.js +9 -0
  118. package/package.json +14 -11
  119. package/test/basedriver/driver-tests.js +31 -2
  120. package/index.d.ts +0 -386
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  require("source-map-support/register");
6
6
 
7
- var _log = _interopRequireDefault(require("../../../../lib/basedriver/commands/log"));
7
+ var _log = require("../../../../lib/basedriver/commands/log");
8
8
 
9
9
  var _sinon = require("sinon");
10
10
 
@@ -25,10 +25,19 @@ const SUPPORTED_LOG_TYPES = {
25
25
  };
26
26
  describe('log commands -', function () {
27
27
  let sandbox;
28
+ let LogCommands;
29
+ let logCommands;
28
30
  beforeEach(function () {
29
31
  sandbox = (0, _sinon.createSandbox)();
30
- _log.default.supportedLogTypes = {};
31
- _log.default.log = {
32
+ LogCommands = (0, _log.LogMixin)(class {
33
+ get log() {
34
+ return this._log;
35
+ }
36
+
37
+ });
38
+ logCommands = new LogCommands();
39
+ logCommands.supportedLogTypes = {};
40
+ logCommands._log = {
32
41
  debug: _lodash.default.noop
33
42
  };
34
43
  });
@@ -37,49 +46,47 @@ describe('log commands -', function () {
37
46
  });
38
47
  describe('getLogTypes', function () {
39
48
  it('should return empty array when no supported log types', async function () {
40
- (await _log.default.getLogTypes()).should.eql([]);
49
+ (await logCommands.getLogTypes()).should.eql([]);
41
50
  });
42
51
  it('should return keys to log type object', async function () {
43
- _log.default.supportedLogTypes = SUPPORTED_LOG_TYPES;
44
- (await _log.default.getLogTypes()).should.eql(['one', 'two']);
52
+ logCommands.supportedLogTypes = SUPPORTED_LOG_TYPES;
53
+ (await logCommands.getLogTypes()).should.eql(['one', 'two']);
45
54
  });
46
55
  });
47
56
  describe('getLog', function () {
57
+ let one;
58
+ let two;
48
59
  beforeEach(function () {
49
- sandbox.spy(SUPPORTED_LOG_TYPES.one, 'getter');
50
- sandbox.spy(SUPPORTED_LOG_TYPES.two, 'getter');
51
- });
52
- afterEach(function () {
53
- SUPPORTED_LOG_TYPES.one.getter.restore();
54
- SUPPORTED_LOG_TYPES.two.getter.restore();
60
+ one = sandbox.spy(SUPPORTED_LOG_TYPES.one, 'getter');
61
+ two = sandbox.spy(SUPPORTED_LOG_TYPES.two, 'getter');
55
62
  });
56
63
  it('should throw error if log type not supported', async function () {
57
- await _log.default.getLog('one').should.eventually.be.rejected;
58
- SUPPORTED_LOG_TYPES.one.getter.called.should.be.false;
59
- SUPPORTED_LOG_TYPES.two.getter.called.should.be.false;
64
+ await logCommands.getLog('one').should.eventually.be.rejected;
65
+ one.called.should.be.false;
66
+ two.called.should.be.false;
60
67
  });
61
68
  it('should throw an error with available log types if log type not supported', async function () {
62
- _log.default.supportedLogTypes = SUPPORTED_LOG_TYPES;
69
+ logCommands.supportedLogTypes = SUPPORTED_LOG_TYPES;
63
70
  let err;
64
71
 
65
72
  try {
66
- await _log.default.getLog('three');
73
+ await logCommands.getLog('three');
67
74
  } catch (_err) {
68
75
  err = _err;
69
76
  }
70
77
 
71
78
  expect(err).to.exist;
72
79
  err.message.should.eql(`Unsupported log type 'three'. Supported types: {"one":"First logs","two":"Seconds logs"}`);
73
- SUPPORTED_LOG_TYPES.one.getter.called.should.be.false;
74
- SUPPORTED_LOG_TYPES.two.getter.called.should.be.false;
80
+ one.called.should.be.false;
81
+ two.called.should.be.false;
75
82
  });
76
83
  it('should call getter on appropriate log when found', async function () {
77
- _log.default.supportedLogTypes = SUPPORTED_LOG_TYPES;
78
- let logs = await _log.default.getLog('one');
84
+ logCommands.supportedLogTypes = SUPPORTED_LOG_TYPES;
85
+ let logs = await logCommands.getLog('one');
79
86
  logs.should.eql(FIRST_LOGS);
80
- SUPPORTED_LOG_TYPES.one.getter.called.should.be.true;
81
- SUPPORTED_LOG_TYPES.two.getter.called.should.be.false;
87
+ one.called.should.be.true;
88
+ two.called.should.be.false;
82
89
  });
83
90
  });
84
91
  });
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5zcGVjLmpzIl0sIm5hbWVzIjpbImV4cGVjdCIsImNoYWkiLCJGSVJTVF9MT0dTIiwiU0VDT05EX0xPR1MiLCJTVVBQT1JURURfTE9HX1RZUEVTIiwib25lIiwiZGVzY3JpcHRpb24iLCJnZXR0ZXIiLCJfIiwiY2xvbmUiLCJ0d28iLCJkZXNjcmliZSIsInNhbmRib3giLCJiZWZvcmVFYWNoIiwibG9nQ29tbWFuZHMiLCJzdXBwb3J0ZWRMb2dUeXBlcyIsImxvZyIsImRlYnVnIiwibm9vcCIsImFmdGVyRWFjaCIsInJlc3RvcmUiLCJpdCIsImdldExvZ1R5cGVzIiwic2hvdWxkIiwiZXFsIiwic3B5IiwiZ2V0TG9nIiwiZXZlbnR1YWxseSIsImJlIiwicmVqZWN0ZWQiLCJjYWxsZWQiLCJmYWxzZSIsImVyciIsIl9lcnIiLCJ0byIsImV4aXN0IiwibWVzc2FnZSIsImxvZ3MiLCJ0cnVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxNQUFNLEdBQUdDLElBQUksQ0FBQ0QsTUFBcEI7QUFFQSxNQUFNRSxVQUFVLEdBQUcsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUFuQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxDQUFDLFFBQUQsRUFBVyxNQUFYLENBQXBCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUc7QUFDMUJDLEVBQUFBLEdBQUcsRUFBRTtBQUNIQyxJQUFBQSxXQUFXLEVBQUUsWUFEVjtBQUVIQyxJQUFBQSxNQUFNLEVBQUUsTUFBTUMsZ0JBQUVDLEtBQUYsQ0FBUVAsVUFBUjtBQUZYLEdBRHFCO0FBSzFCUSxFQUFBQSxHQUFHLEVBQUU7QUFDSEosSUFBQUEsV0FBVyxFQUFFLGNBRFY7QUFFSEMsSUFBQUEsTUFBTSxFQUFFLE1BQU1DLGdCQUFFQyxLQUFGLENBQVFOLFdBQVI7QUFGWDtBQUxxQixDQUE1QjtBQVdBUSxRQUFRLENBQUMs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cEIsQ0FBd0JILE1BQXhCLENBQStCdUIsTUFBL0IsQ0FBc0NQLE1BQXRDLENBQTZDSyxFQUE3QyxDQUFnREcsS0FBaEQ7QUFDRCxLQVpDLENBQUY7QUFhQVYsSUFBQUEsRUFBRSxDQUFDLGtEQUFELEVBQXFELGtCQUFrQjtBQUN2RVAsbUJBQVlDLGlCQUFaLEdBQWdDWCxtQkFBaEM7QUFDQSxVQUFJaUMsSUFBSSxHQUFHLE1BQU12QixhQUFZWSxNQUFaLENBQW1CLEtBQW5CLENBQWpCO0FBQ0FXLE1BQUFBLElBQUksQ0FBQ2QsTUFBTCxDQUFZQyxHQUFaLENBQWdCdEIsVUFBaEI7QUFDQUUsTUFBQUEsbUJBQW1CLENBQUNDLEdBQXBCLENBQXdCRSxNQUF4QixDQUErQnVCLE1BQS9CLENBQXNDUCxNQUF0QyxDQUE2Q0ssRUFBN0MsQ0FBZ0RVLElBQWhEO0FBQ0FsQyxNQUFBQSxtQkFBbUIsQ0FBQ00sR0FBcEIsQ0FBd0JILE1BQXhCLENBQStCdUIsTUFBL0IsQ0FBc0NQLE1BQXRDLENBQTZDSyxFQUE3QyxDQUFnREcsS0FBaEQ7QUFDRCxLQU5DLENBQUY7QUFPRCxHQWxDTyxDQUFSO0FBbUNELENBMURPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nQ29tbWFuZHMgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvbG9nJztcbmltcG9ydCB7IGNyZWF0ZVNhbmRib3ggfSBmcm9tICdzaW5vbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbmNvbnN0IGV4cGVjdCA9IGNoYWkuZXhwZWN0O1xuXG5jb25zdCBGSVJTVF9MT0dTID0gWydmaXJzdCcsICdsb2dzJ107XG5jb25zdCBTRUNPTkRfTE9HUyA9IFsnc2Vjb25kJywgJ2xvZ3MnXTtcbmNvbnN0IFNVUFBPUlRFRF9MT0dfVFlQRVMgPSB7XG4gIG9uZToge1xuICAgIGRlc2NyaXB0aW9uOiAnRmlyc3QgbG9ncycsXG4gICAgZ2V0dGVyOiAoKSA9PiBfLmNsb25lKEZJUlNUX0xPR1MpLFxuICB9LFxuICB0d286IHtcbiAgICBkZXNjcmlwdGlvbjogJ1NlY29uZHMgbG9ncycsXG4gICAgZ2V0dGVyOiAoKSA9PiBfLmNsb25lKFNFQ09ORF9MT0dTKSxcbiAgfSxcbn07XG5cbmRlc2NyaWJlKCdsb2cgY29tbWFuZHMgLScsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHNhbmRib3g7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveCA9IGNyZWF0ZVNhbmRib3goKTtcbiAgICAvLyByZXNldCB0aGUgc3VwcG9ydGVkIGxvZyB0eXBlc1xuICAgIGxvZ0NvbW1hbmRzLnN1cHBvcnRlZExvZ1R5cGVzID0ge307XG4gICAgbG9nQ29tbWFuZHMubG9nID0ge2RlYnVnOiBfLm5vb3B9O1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0TG9nVHlwZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZW1wdHkgYXJyYXkgd2hlbiBubyBzdXBwb3J0ZWQgbG9nIHR5cGVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgKGF3YWl0IGxvZ0NvbW1hbmRzLmdldExvZ1R5cGVzKCkpLnNob3VsZC5lcWwoW10pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGtleXMgdG8gbG9nIHR5cGUgb2JqZWN0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbG9nQ29tbWFuZHMuc3VwcG9ydGVkTG9nVHlwZXMgPSBTVVBQT1JURURfTE9HX1RZUEVTO1xuICAgICAgKGF3YWl0IGxvZ0NvbW1hbmRzLmdldExvZ1R5cGVzKCkpLnNob3VsZC5lcWwoWydvbmUnLCAndHdvJ10pO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2dldExvZycsIGZ1bmN0aW9uICgpIHtcbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNhbmRib3guc3B5KFNVUFBPUlRFRF9MT0dfVFlQRVMub25lLCAnZ2V0dGVyJyk7XG4gICAgICBzYW5kYm94LnNweShTVVBQT1JURURfTE9HX1RZUEVTLnR3bywgJ2dldHRlcicpO1xuICAgIH0pO1xuICAgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBTVVBQT1JURURfTE9HX1RZUEVTLm9uZS5nZXR0ZXIucmVzdG9yZSgpO1xuICAgICAgU1VQUE9SVEVEX0xPR19UWVBFUy50d28uZ2V0dGVyLnJlc3RvcmUoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGlmIGxvZyB0eXBlIG5vdCBzdXBwb3J0ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBsb2dDb21tYW5kcy5nZXRMb2coJ29uZScpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgICAgU1VQUE9SVEVEX0xPR19UWVBFUy5vbmUuZ2V0dGVyLmNhbGxlZC5zaG91bGQuYmUuZmFsc2U7XG4gICAgICBTVVBQT1JURURfTE9HX1RZUEVTLnR3by5nZXR0ZXIuY2FsbGVkLnNob3VsZC5iZS5mYWxzZTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdpdGggYXZhaWxhYmxlIGxvZyB0eXBlcyBpZiBsb2cgdHlwZSBub3Qgc3VwcG9ydGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbG9nQ29tbWFuZHMuc3VwcG9ydGVkTG9nVHlwZXMgPSBTVVBQT1JURURfTE9HX1RZUEVTO1xuICAgICAgbGV0IGVycjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGxvZ0NvbW1hbmRzLmdldExvZygndGhyZWUnKTtcbiAgICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgICAgZXJyID0gX2VycjtcbiAgICAgIH1cbiAgICAgIGV4cGVjdChlcnIpLnRvLmV4aXN0O1xuICAgICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmVxbChgVW5zdXBwb3J0ZWQgbG9nIHR5cGUgJ3RocmVlJy4gU3VwcG9ydGVkIHR5cGVzOiB7XCJvbmVcIjpcIkZpcnN0IGxvZ3NcIixcInR3b1wiOlwiU2Vjb25kcyBsb2dzXCJ9YCk7XG4gICAgICBTVVBQT1JURURfTE9HX1RZUEVTLm9uZS5nZXR0ZXIuY2FsbGVkLnNob3VsZC5iZS5mYWxzZTtcbiAgICAgIFNVUFBPUlRFRF9MT0dfVFlQRVMudHdvLmdldHRlci5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBnZXR0ZXIgb24gYXBwcm9wcmlhdGUgbG9nIHdoZW4gZm91bmQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBsb2dDb21tYW5kcy5zdXBwb3J0ZWRMb2dUeXBlcyA9IFNVUFBPUlRFRF9MT0dfVFlQRVM7XG4gICAgICBsZXQgbG9ncyA9IGF3YWl0IGxvZ0NvbW1hbmRzLmdldExvZygnb25lJyk7XG4gICAgICBsb2dzLnNob3VsZC5lcWwoRklSU1RfTE9HUyk7XG4gICAgICBTVVBQT1JURURfTE9HX1RZUEVTLm9uZS5nZXR0ZXIuY2FsbGVkLnNob3VsZC5iZS50cnVlO1xuICAgICAgU1VQUE9SVEVEX0xPR19UWVBFUy50d28uZ2V0dGVyLmNhbGxlZC5zaG91bGQuYmUuZmFsc2U7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5zcGVjLmpzIl0sIm5hbWVzIjpbImV4cGVjdCIsImNoYWkiLCJGSVJTVF9MT0dTIiwiU0VDT05EX0xPR1MiLCJTVVBQT1JURURfTE9HX1RZUEVTIiwib25lIiwiZGVzY3JpcHRpb24iLCJnZXR0ZXIiLCJfIiwiY2xvbmUiLCJ0d28iLCJkZXNjcmliZSIsInNhbmRib3giLCJMb2dDb21tYW5kcyIsImxvZ0NvbW1hbmRzIiwiYmVmb3JlRWFjaCIsImxvZyIsIl9sb2ciLCJzdXBwb3J0ZWRMb2dUeXBlcyIsImRlYnVnIiwibm9vcCIsImFmdGVyRWFjaCIsInJlc3RvcmUiLCJpdCIsImdldExvZ1R5cGVzIiwic2hvdWxkIiwiZXFsIiwic3B5IiwiZ2V0TG9nIiwiZXZlbnR1YWxseSIsImJlIiwicmVqZWN0ZWQiLCJjYWxsZWQiLCJmYWxzZSIsImVyciIsIl9lcnIiLCJ0byIsImV4aXN0IiwibWVzc2FnZSIsImxvZ3MiLCJ0cnVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxNQUFNLEdBQUdDLElBQUksQ0FBQ0QsTUFBcEI7QUFFQSxNQUFNRSxVQUFVLEdBQUcsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUFuQjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxDQUFDLFFBQUQsRUFBVyxNQUFYLENBQXBCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUc7QUFDMUJDLEVBQUFBLEdBQUcsRUFBRTtBQUNIQyxJQUFBQSxXQUFXLEVBQUUsWUFEVjtBQUVIQyxJQUFBQSxNQUFNLEVBQUUsTUFBTUMsZ0JBQUVDLEtBQUYsQ0FBUVAsVUFBUjtBQUZYLEdBRHFCO0FBSzFCUSxFQUFBQSxHQUFHLEVBQUU7QUFDSEosSUFBQUEsV0FBVyxFQUFFLGNBRFY7QUFFSEMsSUFBQUEsTUFBTSxFQUFFLE1BQU1DLGdCQUFFQyxLQUFGLENBQVFOLFdBQVI7QUFGWDtBQUxxQixD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UCxNQUFYLENBQWtCSyxFQUFsQixDQUFxQkcsS0FBckI7QUFDQXZCLE1BQUFBLEdBQUcsQ0FBQ3NCLE1BQUosQ0FBV1AsTUFBWCxDQUFrQkssRUFBbEIsQ0FBcUJHLEtBQXJCO0FBQ0QsS0FaQyxDQUFGO0FBYUFWLElBQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxRCxrQkFBa0I7QUFDdkVULE1BQUFBLFdBQVcsQ0FBQ0ksaUJBQVosR0FBZ0NkLG1CQUFoQztBQUNBLFVBQUltQyxJQUFJLEdBQUcsTUFBTXpCLFdBQVcsQ0FBQ2MsTUFBWixDQUFtQixLQUFuQixDQUFqQjtBQUNBVyxNQUFBQSxJQUFJLENBQUNkLE1BQUwsQ0FBWUMsR0FBWixDQUFnQnhCLFVBQWhCO0FBQ0FHLE1BQUFBLEdBQUcsQ0FBQzJCLE1BQUosQ0FBV1AsTUFBWCxDQUFrQkssRUFBbEIsQ0FBcUJVLElBQXJCO0FBQ0E5QixNQUFBQSxHQUFHLENBQUNzQixNQUFKLENBQVdQLE1BQVgsQ0FBa0JLLEVBQWxCLENBQXFCRyxLQUFyQjtBQUNELEtBTkMsQ0FBRjtBQU9ELEdBbENPLENBQVI7QUFtQ0QsQ0FqRU8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0IHtMb2dNaXhpbn0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvbG9nJztcbmltcG9ydCB7IGNyZWF0ZVNhbmRib3ggfSBmcm9tICdzaW5vbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBleHBlY3QgPSBjaGFpLmV4cGVjdDtcblxuY29uc3QgRklSU1RfTE9HUyA9IFsnZmlyc3QnLCAnbG9ncyddO1xuY29uc3QgU0VDT05EX0xPR1MgPSBbJ3NlY29uZCcsICdsb2dzJ107XG5jb25zdCBTVVBQT1JURURfTE9HX1RZUEVTID0ge1xuICBvbmU6IHtcbiAgICBkZXNjcmlwdGlvbjogJ0ZpcnN0IGxvZ3MnLFxuICAgIGdldHRlcjogKCkgPT4gXy5jbG9uZShGSVJTVF9MT0dTKSxcbiAgfSxcbiAgdHdvOiB7XG4gICAgZGVzY3JpcHRpb246ICdTZWNvbmRzIGxvZ3MnLFxuICAgIGdldHRlcjogKCkgPT4gXy5jbG9uZShTRUNPTkRfTE9HUyksXG4gIH0sXG59O1xuXG5kZXNjcmliZSgnbG9nIGNvbW1hbmRzIC0nLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzYW5kYm94O1xuICAvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIExvZ01peGluPn0gKi9cbiAgbGV0IExvZ0NvbW1hbmRzO1xuXG4gIGxldCBsb2dDb21tYW5kcztcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gY3JlYXRlU2FuZGJveCgpO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBMb2dDb21tYW5kcyA9IExvZ01peGluKGNsYXNzIHsgZ2V0IGxvZyAoKSB7IHJldHVybiB0aGlzLl9sb2c7IH19KTtcbiAgICBsb2dDb21tYW5kcyA9IG5ldyBMb2dDb21tYW5kcygpO1xuICAgIC8vIHJlc2V0IHRoZSBzdXBwb3J0ZWQgbG9nIHR5cGVzXG4gICAgbG9nQ29tbWFuZHMuc3VwcG9ydGVkTG9nVHlwZXMgPSB7fTtcbiAgICBsb2dDb21tYW5kcy5fbG9nID0gLyoqIEB0eXBlIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9ICovKHtkZWJ1ZzogXy5ub29wfSk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRMb2dUeXBlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBlbXB0eSBhcnJheSB3aGVuIG5vIHN1cHBvcnRlZCBsb2cgdHlwZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAoYXdhaXQgbG9nQ29tbWFuZHMuZ2V0TG9nVHlwZXMoKSkuc2hvdWxkLmVxbChbXSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4ga2V5cyB0byBsb2cgdHlwZSBvYmplY3QnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBsb2dDb21tYW5kcy5zdXBwb3J0ZWRMb2dUeXBlcyA9IFNVUFBPUlRFRF9MT0dfVFlQRVM7XG4gICAgICAoYXdhaXQgbG9nQ29tbWFuZHMuZ2V0TG9nVHlwZXMoKSkuc2hvdWxkLmVxbChbJ29uZScsICd0d28nXSk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0TG9nJywgZnVuY3Rpb24gKCkge1xuICAgIC8qKiBAdHlwZSB7c2lub24uU2lub25TcGllZE1lbWJlcjx0eXBlb2YgU1VQUE9SVEVEX0xPR19UWVBFUy5vbmUuZ2V0dGVyPn0gKi9cbiAgICBsZXQgb25lO1xuICAgIC8qKiBAdHlwZSB7c2lub24uU2lub25TcGllZE1lbWJlcjx0eXBlb2YgU1VQUE9SVEVEX0xPR19UWVBFUy50d28uZ2V0dGVyPn0gKi9cbiAgICBsZXQgdHdvO1xuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgb25lID0gc2FuZGJveC5zcHkoU1VQUE9SVEVEX0xPR19UWVBFUy5vbmUsICdnZXR0ZXInKTtcbiAgICAgIHR3byA9IHNhbmRib3guc3B5KFNVUFBPUlRFRF9MT0dfVFlQRVMudHdvLCAnZ2V0dGVyJyk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpZiBsb2cgdHlwZSBub3Qgc3VwcG9ydGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgbG9nQ29tbWFuZHMuZ2V0TG9nKCdvbmUnKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZDtcbiAgICAgIG9uZS5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgdHdvLmNhbGxlZC5zaG91bGQuYmUuZmFsc2U7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciB3aXRoIGF2YWlsYWJsZSBsb2cgdHlwZXMgaWYgbG9nIHR5cGUgbm90IHN1cHBvcnRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxvZ0NvbW1hbmRzLnN1cHBvcnRlZExvZ1R5cGVzID0gU1VQUE9SVEVEX0xPR19UWVBFUztcbiAgICAgIGxldCBlcnI7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBsb2dDb21tYW5kcy5nZXRMb2coJ3RocmVlJyk7XG4gICAgICB9IGNhdGNoIChfZXJyKSB7XG4gICAgICAgIGVyciA9IF9lcnI7XG4gICAgICB9XG4gICAgICBleHBlY3QoZXJyKS50by5leGlzdDtcbiAgICAgIGVyci5tZXNzYWdlLnNob3VsZC5lcWwoYFVuc3VwcG9ydGVkIGxvZyB0eXBlICd0aHJlZScuIFN1cHBvcnRlZCB0eXBlczoge1wib25lXCI6XCJGaXJzdCBsb2dzXCIsXCJ0d29cIjpcIlNlY29uZHMgbG9nc1wifWApO1xuICAgICAgb25lLmNhbGxlZC5zaG91bGQuYmUuZmFsc2U7XG4gICAgICB0d28uY2FsbGVkLnNob3VsZC5iZS5mYWxzZTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGNhbGwgZ2V0dGVyIG9uIGFwcHJvcHJpYXRlIGxvZyB3aGVuIGZvdW5kJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbG9nQ29tbWFuZHMuc3VwcG9ydGVkTG9nVHlwZXMgPSBTVVBQT1JURURfTE9HX1RZUEVTO1xuICAgICAgbGV0IGxvZ3MgPSBhd2FpdCBsb2dDb21tYW5kcy5nZXRMb2coJ29uZScpO1xuICAgICAgbG9ncy5zaG91bGQuZXFsKEZJUlNUX0xPR1MpO1xuICAgICAgb25lLmNhbGxlZC5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIHR3by5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -132,4 +132,4 @@ describe('timeout', function () {
132
132
  });
133
133
  });
134
134
  });
135
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iYXNlZHJpdmVyL3RpbWVvdXQuc3BlYy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImRyaXZlciIsIkJhc2VEcml2ZXIiLCJpbXBsaWNpdFdhaXRTcHkiLCJzYW5kYm94IiwiYmVmb3JlRWFjaCIsImltcGxpY2l0V2FpdE1zIiwic3B5IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZSIsIml0IiwidGltZW91dHMiLCJzaG91bGQiLCJldmVudHVhbGx5IiwiYmUiLCJyZWplY3RlZCIsInVuZGVmaW5lZCIsImNhbGxlZE9uY2UiLCJ0cnVlIiwiZmlyc3RDYWxsIiwiYXJncyIsImVxdWFsIiwiZXFsIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwibWFuYWdlZERyaXZlcjEiLCJtYW5hZ2VkRHJpdmVyMiIsImJlZm9yZSIsImFkZE1hbmFnZWREcml2ZXIiLCJhZnRlciIsIm1hbmFnZWREcml2ZXJzIiwic2V0TmV3Q29tbWFuZFRpbWVvdXQiLCJuZXdDb21tYW5kVGltZW91dE1zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFFQUEsUUFBUSxDQUFDLFNBQUQsRUFBWSxZQUFZO0FBQzlCLE1BQUlDLE1BQU0sR0FBRyxJQUFJQyxZQUFKLEVBQWI7QUFDQSxNQUFJQyxlQUFKO0FBQ0EsTUFBSUMsT0FBSjtBQUNBQyxFQUFBQSxVQUFVLENBQUMsWUFBWTtBQUNyQkQsSUFBQUEsT0FBTyxHQUFHLDJCQUFWO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ0ssY0FBUCxHQUF3QixDQUF4QjtBQUNBSCxJQUFBQSxlQUFlLEdBQUdDLE9BQU8sQ0FBQ0csR0FBUixDQUFZTixNQUFaLEVBQW9CLGlCQUFwQixDQUFsQjtBQUNELEdBSlMsQ0FBVjtBQUtBTyxFQUFBQSxTQUFTLENBQUMsWUFBWTtBQUNwQkosSUFBQUEsT0FBTyxDQUFDSyxPQUFSO0FBQ0QsR0FGUSxDQUFUO0FBR0FULEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBWTtBQUMvQkEsSUFBQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFZO0FBQzdCVSxNQUFBQSxFQUFFLENBQUMsbURBQUQsRUFBc0Qsa0JBQWtCO0FBQ3hFLGNBQU1ULE1BQU0sQ0FBQ1UsUUFBUCxDQUFnQixnQkFBaEIsRUFBa0MsT0FBbEMsRUFBMkNDLE1BQTNDLENBQWtEQyxVQUFsRCxDQUE2REMsRUFBN0QsQ0FBZ0VDLFFBQXRFO0FBQ0QsT0FGQyxDQUFGO0FBR0FMLE1BQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxrQkFBa0I7QUFDbkUsY0FBTVQsTUFBTSxDQUFDVSxRQUFQLENBQWdCLGdCQUFoQixFQUFrQyxDQUFDLEVBQW5DLEVBQXVDQyxNQUF2QyxDQUE4Q0MsVUFBOUMsQ0FBeURDLEVBQXpELENBQTREQyxRQUFsRTtBQUNELE9BRkMsQ0FBRjtBQUdBTCxNQUFBQSxFQUFFLENBQUMsbURBQUQsRUFBc0Qsa0JBQWtCO0FBQ3hFLGNBQU1ULE1BQU0sQ0FBQ1UsUUFBUCxDQUFnQixnQkFBaEIsRUFBa0MsRUFBbEMsRUFBc0NDLE1BQXRDLENBQTZDQyxVQUE3QyxDQUF3REMsRUFBeEQsQ0FBMkRDLFFBQWpFO0FBQ0QsT0FGQyxDQUFGO0FBR0FMLE1BQUFBLEVBQUUsQ0FBQyxxRUFBRCxFQUF3RSxrQkFBa0I7QUFDMUYsY0FBTVQsTUFBTSxDQUFDVSxRQUFQLENBQWdCSyxTQUFoQixFQUEyQkEsU0FBM0IsRUFBc0MsR0FBdEMsRUFBMkNBLFNBQTNDLEVBQXNEQSxTQUF0RCxFQUFpRUosTUFBakUsQ0FBd0VDLFVBQXhFLENBQW1GQyxFQUFuRixDQUFzRkMsUUFBNUY7QUFDRCxPQUZDLENBQUY7QUFHQUwsTUFBQUEsRUFBRSxDQUFDLHVFQUFELEVBQTBFLGtCQUFrQjtBQUM1RixjQUFNVCxNQUFNLENBQUNVLFFBQVAsQ0FBZ0JLLFNBQWhCLEVBQTJCQSxTQUEzQixFQUFzQ0EsU0FBdEMsRUFBaUQsR0FBakQsRUFBc0RBLFNBQXRELEVBQWlFSixNQUFqRSxDQUF3RUMsVUFBeEUsQ0FBbUZDLEVBQW5GLENBQXNGQyxRQUE1RjtBQUNELE9BRkMsQ0FBRjtBQUdELEtBaEJPLENBQVI7QUFpQkFmLElBQUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLFlBQVk7QUFDcENVLE1BQUFBLEVBQUUsQ0FBQyxtREFBRCxFQUFzRCxrQkFBa0I7QUFDeEUsY0FBTVQsTUFBTSxDQUFDVSxRQUFQLENBQWdCLFVBQWhCLEVBQTRCLEVBQTVCLENBQU47QUFDQVIsUUFBQUEsZUFBZSxDQUFDYyxVQUFoQixDQUEyQkwsTUFBM0IsQ0FBa0NFLEVBQWxDLENBQXFDSSxJQUFyQztBQUNBZixRQUFBQSxlQUFlLENBQUNnQixTQUFoQixDQUEwQkMsSUFBMUIsQ0FBK0IsQ0FBL0IsRUFBa0NSLE1BQWxDLENBQXlDUyxLQUF6QyxDQUErQyxFQUEvQztBQUNBcEIsUUFBQUEsTUFBTSxDQUFDSyxjQUFQLENBQXNCTSxNQUF0QixDQUE2QlUsR0FBN0IsQ0FBaUMsRUFBakM7QUFDRCxPQUxDLENBQUY7QUFNQVosTUFBQUEsRUFBRSxDQUFDLGlEQUFELEVBQW9ELGtCQUFrQjtBQUN0RSxjQUFNVCxNQUFNLENBQUNVLFFBQVAsQ0FBZ0IsVUFBaEIsRUFBNEIsSUFBNUIsQ0FBTjtBQUNBUixRQUFBQSxlQUFlLENBQUNjLFVBQWhCLENBQTJCTCxNQUEzQixDQUFrQ0UsRUFBbEMsQ0FBcUNJLElBQXJDO0FBQ0FmLFFBQUFBLGVBQWUsQ0FBQ2dCLFNBQWhCLENBQTBCQyxJQUExQixDQUErQixDQUEvQixFQUFrQ1IsTUFBbEMsQ0FBeUNTLEtBQXpDLENBQStDLEVBQS9DO0FBQ0FwQixRQUFBQSxNQUFNLENBQUNLLGNBQVAsQ0FBc0JNLE1BQXRCLENBQTZCVSxHQUE3QixDQUFpQyxFQUFqQztBQUNELE9BTEMsQ0FBRjtBQU1BWixNQUFBQSxFQUFFLENBQUMsdUVBQUQsRUFBMEUsa0JBQWtCO0FBQzVGLGNBQU1ULE1BQU0sQ0FBQ1UsUUFBUCxDQUFnQkssU0FBaEIsRUFBMkJBLFNBQTNCLEVBQXNDQSxTQUF0QyxFQUFpREEsU0FBakQsRUFBNEQsRUFBNUQsQ0FBTjtBQUNBYixRQUFBQSxlQUFlLENBQUNjLFVBQWhCLENBQTJCTCxNQUEzQixDQUFrQ0UsRUFBbEMsQ0FBcUNJLElBQXJDO0FBQ0FmLFFBQUFBLGVBQWUsQ0FBQ2dCLFNBQWhCLENBQTBCQyxJQUExQixDQUErQixDQUEvQixFQUFrQ1IsTUFBbEMsQ0FBeUNTLEtBQXpDLENBQStDLEVBQS9DO0FBQ0FwQixRQUFBQSxNQUFNLENBQUNLLGNBQVAsQ0FBc0JNLE1BQXRCLENBQTZCVSxHQUE3QixDQUFpQyxFQUFqQztBQUNELE9BTEMsQ0FBRjtBQU1BWixNQUFBQSxFQUFFLENBQUMscUVBQUQsRUFBd0Usa0JBQWtCO0FBQzFGLGNBQU1ULE1BQU0sQ0FBQ1UsUUFBUCxDQUFnQkssU0FBaEIsRUFBMkJBLFNBQTNCLEVBQXNDQSxTQUF0QyxFQUFpREEsU0FBakQsRUFBNEQsSUFBNUQsQ0FBTjtBQUNBYixRQUFBQSxlQUFlLENBQUNjLFVBQWhCLENBQTJCTCxNQUEzQixDQUFrQ0UsRUFBbEMsQ0FBcUNJLElBQXJDO0FBQ0FmLFFBQUFBLGVBQWUsQ0FBQ2dCLFNBQWhCLENBQTBCQyxJQUExQixDQUErQixDQUEvQixFQUFrQ1IsTUFBbEMsQ0FBeUNTLEtBQXpDLENBQStDLEVBQS9DO0FBQ0FwQixRQUFBQSxNQUFNLENBQUNLLGNBQVAsQ0FBc0JNLE1BQXRCLENBQTZCVSxHQUE3QixDQUFpQyxFQUFqQztBQUNELE9BTEMsQ0FBRjtBQU1ELEtBekJPLENBQVI7QUEwQkQsR0E1Q08sQ0FBUjtBQTZDQXRCLEVBQUFBLFFBQVEsQ0FBQyxjQUFELEVBQWlCLFlBQVk7QUFDbkNVLElBQUFBLEVBQUUsQ0FBQyxtREFBRCxFQUFzRCxrQkFBa0I7QUFDeEUsWUFBTVQsTUFBTSxDQUFDc0IsWUFBUCxDQUFvQixFQUFwQixDQUFOO0FBQ0FwQixNQUFBQSxlQUFlLENBQUNjLFVBQWhCLENBQTJCTCxNQUEzQixDQUFrQ0UsRUFBbEMsQ0FBcUNJLElBQXJDO0FBQ0FmLE1BQUFBLGVBQWUsQ0FBQ2dCLFNBQWhCLENBQTBCQyxJQUExQixDQUErQixDQUEvQixFQUFrQ1IsTUFBbEMsQ0FBeUNTLEtBQXpDLENBQStDLEVBQS9DO0FBQ0FwQixNQUFBQSxNQUFNLENBQUNLLGNBQVAsQ0FBc0JNLE1BQXRCLENBQTZCVSxHQUE3QixDQUFpQyxFQUFqQztBQUNELEtBTEMsQ0FBRjtBQU1BWixJQUFBQSxFQUFFLENBQUMsaURBQUQsRUFBb0Qsa0JBQWtCO0FBQ3RFLFlBQU1ULE1BQU0sQ0FBQ3NCLFlBQVAsQ0FBb0IsSUFBcEIsQ0FBTjtBQUNBcEIsTUFBQUEsZUFBZSxDQUFDYyxVQUFoQixDQUEyQkwsTUFBM0IsQ0FBa0NFLEVBQWxDLENBQXFDSSxJQUFyQztBQUNBZixNQUFBQSxlQUFlLENBQUNnQixTQUFoQixDQUEwQkMsSUFBMUIsQ0FBK0IsQ0FBL0IsRUFBa0NSLE1BQWxDLENBQXlDUyxLQUF6QyxDQUErQyxFQUEvQztBQUNBcEIsTUFBQUEsTUFBTSxDQUFDSyxjQUFQLENBQXNCTSxNQUF0QixDQUE2QlUsR0FBN0IsQ0FBaUMsRUFBakM7QUFDRCxLQUxDLENBQUY7QUFNQVosSUFBQUEsRUFBRSxDQUFDLG1EQUFELEVBQXNELGtCQUFrQjtBQUN4RSxZQUFNVCxNQUFNLENBQUNzQixZQUFQLENBQW9CLE9BQXBCLEVBQTZCWCxNQUE3QixDQUFvQ0MsVUFBcEMsQ0FBK0NDLEVBQS9DLENBQWtEQyxRQUF4RDtBQUNELEtBRkMsQ0FBRjtBQUdBTCxJQUFBQSxFQUFFLENBQUMsOENBQUQsRUFBaUQsa0JBQWtCO0FBQ25FLFlBQU1ULE1BQU0sQ0FBQ3NCLFlBQVAsQ0FBb0IsQ0FBQyxFQUFyQixFQUF5QlgsTUFBekIsQ0FBZ0NDLFVBQWhDLENBQTJDQyxFQUEzQyxDQUE4Q0MsUUFBcEQ7QUFDRCxLQUZDLENBQUY7QUFHRCxHQW5CTyxDQUFSO0FBcUJBZixFQUFBQSxRQUFRLENBQUMsbUJBQUQsRUFBc0IsWUFBWTtBQUN4Q1UsSUFBQUEsRUFBRSxDQUFDLDhDQUFELEVBQWlELFlBQVk7QUFDN0RULE1BQUFBLE1BQU0sQ0FBQ3VCLGVBQVAsQ0FBdUIsRUFBdkI7QUFDQXZCLE1BQUFBLE1BQU0sQ0FBQ0ssY0FBUCxDQUFzQk0sTUFBdEIsQ0FBNkJVLEdBQTdCLENBQWlDLEVBQWpDO0FBQ0QsS0FIQyxDQUFGO0FBSUF0QixJQUFBQSxRQUFRLENBQUMscUJBQUQsRUFBd0IsWUFBWTtBQUMxQyxVQUFJeUIsY0FBYyxHQUFHLElBQUl2QixZQUFKLEVBQXJCO0FBQ0EsVUFBSXdCLGNBQWMsR0FBRyxJQUFJeEIsWUFBSixFQUFyQjtBQUNBeUIsTUFBQUEsTUFBTSxDQUFDLFlBQVk7QUFDakIxQixRQUFBQSxNQUFNLENBQUMyQixnQkFBUCxDQUF3QkgsY0FBeEI7QUFDQXhCLFFBQUFBLE1BQU0sQ0FBQzJCLGdCQUFQLENBQXdCRixjQUF4QjtBQUNELE9BSEssQ0FBTjtBQUlBRyxNQUFBQSxLQUFLLENBQUMsWUFBWTtBQUNoQjVCLFFBQUFBLE1BQU0sQ0FBQzZCLGNBQVAsR0FBd0IsRUFBeEI7QUFDRCxPQUZJLENBQUw7QUFHQXBCLE1BQUFBLEVBQUUsQ0FBQyxpREFBRCxFQUFvRCxZQUFZO0FBQ2hFVCxRQUFBQSxNQUFNLENBQUN1QixlQUFQLENBQXVCLEVBQXZCO0FBQ0F2QixRQUFBQSxNQUFNLENBQUNLLGNBQVAsQ0FBc0JNLE1BQXRCLENBQTZCVSxHQUE3QixDQUFpQyxFQUFqQztBQUNBRyxRQUFBQSxjQUFjLENBQUNuQixjQUFmLENBQThCTSxNQUE5QixDQUFxQ1UsR0FBckMsQ0FBeUMsRUFBekM7QUFDQUksUUFBQUEsY0FBYyxDQUFDcEIsY0FBZixDQUE4Qk0sTUFBOUIsQ0FBcUNVLEdBQXJDLENBQXlDLEVBQXpDO0FBQ0QsT0FMQyxDQUFGO0FBTUQsS0FoQk8sQ0FBUjtBQWlCRCxHQXRCTyxDQUFSO0FBdUJBdEIsRUFBQUEsUUFBUSxDQUFDLHlCQUFELEVBQTRCLFlBQVk7QUFDOUNVLElBQUFBLEVBQUUsQ0FBQyxvREFBRCxFQUF1RCxZQUFZO0FBQ25FVCxNQUFBQSxNQUFNLENBQUM4QixvQkFBUCxDQUE0QixFQUE1QjtBQUNBOUIsTUFBQUEsTUFBTSxDQUFDK0IsbUJBQVAsQ0FBMkJwQixNQUEzQixDQUFrQ1UsR0FBbEMsQ0FBc0MsRUFBdEM7QUFDRCxLQUhDLENBQUY7QUFJQXRCLElBQUFBLFFBQVEsQ0FBQyxxQkFBRCxFQUF3QixZQUFZO0FBQzFDLFVBQUl5QixjQUFjLEdBQUcsSUFBSXZCLFlBQUosRUFBckI7QUFDQSxVQUFJd0IsY0FBYyxHQUFHLElBQUl4QixZQUFKLEVBQXJCO0FBQ0F5QixNQUFBQSxNQUFNLENBQUMsWUFBWTtBQUNqQjFCLFFBQUFBLE1BQU0sQ0FBQzJCLGdCQUFQLENBQXdCSCxjQUF4QjtBQUNBeEIsUUFBQUEsTUFBTSxDQUFDMkIsZ0JBQVAsQ0FBd0JGLGNBQXhCO0FBQ0QsT0FISyxDQUFOO0FBSUFHLE1BQUFBLEtBQUssQ0FBQyxZQUFZO0FBQ2hCNUIsUUFBQUEsTUFBTSxDQUFDNkIsY0FBUCxHQUF3QixFQUF4QjtBQUNELE9BRkksQ0FBTDtBQUdBcEIsTUFBQUEsRUFBRSxDQUFDLHVEQUFELEVBQTBELFlBQVk7QUFDdEVULFFBQUFBLE1BQU0sQ0FBQzhCLG9CQUFQLENBQTRCLEVBQTVCO0FBQ0E5QixRQUFBQSxNQUFNLENBQUMrQixtQkFBUCxDQUEyQnBCLE1BQTNCLENBQWtDVSxHQUFsQyxDQUFzQyxFQUF0QztBQUNBRyxRQUFBQSxjQUFjLENBQUNPLG1CQUFmLENBQW1DcEIsTUFBbkMsQ0FBMENVLEdBQTFDLENBQThDLEVBQTlDO0FBQ0FJLFFBQUFBLGNBQWMsQ0FBQ00sbUJBQWYsQ0FBbUNwQixNQUFuQyxDQUEwQ1UsR0FBMUMsQ0FBOEMsRUFBOUM7QUFDRCxPQUxDLENBQUY7QUFNRCxLQWhCTyxDQUFSO0FBaUJELEdBdEJPLENBQVI7QUF1QkQsQ0E1SE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlRHJpdmVyIGZyb20gJy4uLy4uLy4uL2xpYic7XG5pbXBvcnQgeyBjcmVhdGVTYW5kYm94IH0gZnJvbSAnc2lub24nO1xuXG5kZXNjcmliZSgndGltZW91dCcsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGRyaXZlciA9IG5ldyBCYXNlRHJpdmVyKCk7XG4gIGxldCBpbXBsaWNpdFdhaXRTcHk7XG4gIGxldCBzYW5kYm94O1xuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gY3JlYXRlU2FuZGJveCgpO1xuICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcyA9IDA7XG4gICAgaW1wbGljaXRXYWl0U3B5ID0gc2FuZGJveC5zcHkoZHJpdmVyLCAnc2V0SW1wbGljaXRXYWl0Jyk7XG4gIH0pO1xuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcbiAgZGVzY3JpYmUoJ3RpbWVvdXRzJywgZnVuY3Rpb24gKCkge1xuICAgIGRlc2NyaWJlKCdlcnJvcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHNvbWV0aGluZyByYW5kb20gaXMgc2VudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKCdyYW5kb20gdGltZW91dCcsICdob3dkeScpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHRpbWVvdXQgaXMgbmVnYXRpdmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cygncmFuZG9tIHRpbWVvdXQnLCAtNDIpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9ycyBpZiB0aW1lb3V0IHR5cGUgaXMgdW5rbm93bicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKCdyYW5kb20gdGltZW91dCcsIDQyKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZDtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBzb21ldGhpbmcgcmFuZG9tIGlzIHNlbnQgdG8gc2NyaXB0RHVyYXRpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgMTIzLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWQ7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgc29tZXRoaW5nIHJhbmRvbSBpcyBzZW50IHRvIHBhZ2VMb2FkRHVyYXRpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxMjMsIHVuZGVmaW5lZCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBkZXNjcmliZSgnaW1wbGljaXQgd2FpdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgY2FsbCBzZXRJbXBsaWNpdFdhaXQgd2hlbiBnaXZlbiBhbiBpbnRlZ2VyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHMoJ2ltcGxpY2l0JywgNDIpO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgICAgaW1wbGljaXRXYWl0U3B5LmZpcnN0Q2FsbC5hcmdzWzBdLnNob3VsZC5lcXVhbCg0Mik7XG4gICAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBjYWxsIHNldEltcGxpY2l0V2FpdCB3aGVuIGdpdmVuIGEgc3RyaW5nJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHMoJ2ltcGxpY2l0JywgJzQyJyk7XG4gICAgICAgIGltcGxpY2l0V2FpdFNweS5jYWxsZWRPbmNlLnNob3VsZC5iZS50cnVlO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuZmlyc3RDYWxsLmFyZ3NbMF0uc2hvdWxkLmVxdWFsKDQyKTtcbiAgICAgICAgZHJpdmVyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIGNhbGwgc2V0SW1wbGljaXRXYWl0IHdoZW4gZ2l2ZW4gYW4gaW50ZWdlciB0byBpbXBsaWNpdER1cmF0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHModW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCA0Mik7XG4gICAgICAgIGltcGxpY2l0V2FpdFNweS5jYWxsZWRPbmNlLnNob3VsZC5iZS50cnVlO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuZmlyc3RDYWxsLmFyZ3NbMF0uc2hvdWxkLmVxdWFsKDQyKTtcbiAgICAgICAgZHJpdmVyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIGNhbGwgc2V0SW1wbGljaXRXYWl0IHdoZW4gZ2l2ZW4gYSBzdHJpbmcgdG8gaW1wbGljaXREdXJhdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgJzQyJyk7XG4gICAgICAgIGltcGxpY2l0V2FpdFNweS5jYWxsZWRPbmNlLnNob3VsZC5iZS50cnVlO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuZmlyc3RDYWxsLmFyZ3NbMF0uc2hvdWxkLmVxdWFsKDQyKTtcbiAgICAgICAgZHJpdmVyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnaW1wbGljaXRXYWl0JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgY2FsbCBzZXRJbXBsaWNpdFdhaXQgd2hlbiBnaXZlbiBhbiBpbnRlZ2VyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgZHJpdmVyLmltcGxpY2l0V2FpdCg0Mik7XG4gICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIGltcGxpY2l0V2FpdFNweS5maXJzdENhbGwuYXJnc1swXS5zaG91bGQuZXF1YWwoNDIpO1xuICAgICAgZHJpdmVyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY2FsbCBzZXRJbXBsaWNpdFdhaXQgd2hlbiBnaXZlbiBhIHN0cmluZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5pbXBsaWNpdFdhaXQoJzQyJyk7XG4gICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIGltcGxpY2l0V2FpdFNweS5maXJzdENhbGwuYXJnc1swXS5zaG91bGQuZXF1YWwoNDIpO1xuICAgICAgZHJpdmVyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgc29tZXRoaW5nIHJhbmRvbSBpcyBzZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgZHJpdmVyLmltcGxpY2l0V2FpdCgnaG93ZHknKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZDtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHRpbWVvdXQgaXMgbmVnYXRpdmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuaW1wbGljaXRXYWl0KC00Mikuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWQ7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXQgaW1wbGljaXQgd2FpdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHNldCB0aGUgaW1wbGljaXQgd2FpdCB3aXRoIGFuIGludGVnZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBkcml2ZXIuc2V0SW1wbGljaXRXYWl0KDQyKTtcbiAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICB9KTtcbiAgICBkZXNjcmliZSgnd2l0aCBtYW5hZ2VkIGRyaXZlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBtYW5hZ2VkRHJpdmVyMSA9IG5ldyBCYXNlRHJpdmVyKCk7XG4gICAgICBsZXQgbWFuYWdlZERyaXZlcjIgPSBuZXcgQmFzZURyaXZlcigpO1xuICAgICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLmFkZE1hbmFnZWREcml2ZXIobWFuYWdlZERyaXZlcjEpO1xuICAgICAgICBkcml2ZXIuYWRkTWFuYWdlZERyaXZlcihtYW5hZ2VkRHJpdmVyMik7XG4gICAgICB9KTtcbiAgICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLm1hbmFnZWREcml2ZXJzID0gW107XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgc2V0IHRoZSBpbXBsaWNpdCB3YWl0IG9uIG1hbmFnZWQgZHJpdmVycycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdCg0Mik7XG4gICAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgICAgbWFuYWdlZERyaXZlcjEuaW1wbGljaXRXYWl0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICAgIG1hbmFnZWREcml2ZXIyLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnc2V0IG5ldyBjb21tYW5kIHRpbWVvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzZXQgdGhlIG5ldyBjb21tYW5kIHRpbWVvdXQgd2l0aCBhbiBpbnRlZ2VyJywgZnVuY3Rpb24gKCkge1xuICAgICAgZHJpdmVyLnNldE5ld0NvbW1hbmRUaW1lb3V0KDQyKTtcbiAgICAgIGRyaXZlci5uZXdDb21tYW5kVGltZW91dE1zLnNob3VsZC5lcWwoNDIpO1xuICAgIH0pO1xuICAgIGRlc2NyaWJlKCd3aXRoIG1hbmFnZWQgZHJpdmVyJywgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IG1hbmFnZWREcml2ZXIxID0gbmV3IEJhc2VEcml2ZXIoKTtcbiAgICAgIGxldCBtYW5hZ2VkRHJpdmVyMiA9IG5ldyBCYXNlRHJpdmVyKCk7XG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBkcml2ZXIuYWRkTWFuYWdlZERyaXZlcihtYW5hZ2VkRHJpdmVyMSk7XG4gICAgICAgIGRyaXZlci5hZGRNYW5hZ2VkRHJpdmVyKG1hbmFnZWREcml2ZXIyKTtcbiAgICAgIH0pO1xuICAgICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBkcml2ZXIubWFuYWdlZERyaXZlcnMgPSBbXTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBzZXQgdGhlIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQoNDIpO1xuICAgICAgICBkcml2ZXIubmV3Q29tbWFuZFRpbWVvdXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgICAgbWFuYWdlZERyaXZlcjEubmV3Q29tbWFuZFRpbWVvdXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgICAgbWFuYWdlZERyaXZlcjIubmV3Q29tbWFuZFRpbWVvdXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iYXNlZHJpdmVyL3RpbWVvdXQuc3BlYy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImRyaXZlciIsIkJhc2VEcml2ZXIiLCJpbXBsaWNpdFdhaXRTcHkiLCJzYW5kYm94IiwiYmVmb3JlRWFjaCIsImltcGxpY2l0V2FpdE1zIiwic3B5IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZSIsIml0IiwidGltZW91dHMiLCJzaG91bGQiLCJldmVudHVhbGx5IiwiYmUiLCJyZWplY3RlZCIsInVuZGVmaW5lZCIsImNhbGxlZE9uY2UiLCJ0cnVlIiwiZmlyc3RDYWxsIiwiYXJncyIsImVxdWFsIiwiZXFsIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwibWFuYWdlZERyaXZlcjEiLCJtYW5hZ2VkRHJpdmVyMiIsImJlZm9yZSIsImFkZE1hbmFnZWREcml2ZXIiLCJhZnRlciIsIm1hbmFnZWREcml2ZXJzIiwic2V0TmV3Q29tbWFuZFRpbWVvdXQiLCJuZXdDb21tYW5kVGltZW91dE1zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQTs7QUFDQTs7QUFFQUEsUUFBUSxDQUFDLFNBQUQsRUFBWSxZQUFZO0FBQzlCLE1BQUlDLE1BQU0sR0FBRyxJQUFJQyxZQUFKLEVBQWI7QUFDQSxNQUFJQyxlQUFKO0FBQ0EsTUFBSUMsT0FBSjtBQUNBQyxFQUFBQSxVQUFVLENBQUMsWUFBWTtBQUNyQkQsSUFBQUEsT0FBTyxHQUFHLDJCQUFWO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ0ssY0FBUCxHQUF3QixDQUF4QjtBQUNBSCxJQUFBQSxlQUFlLEdBQUdDLE9BQU8sQ0FBQ0csR0FBUixDQUFZTixNQUFaLEVBQW9CLGlCQUFwQixDQUFsQjtBQUNELEdBSlMsQ0FBVjtBQUtBTyxFQUFBQSxTQUFTLENBQUMsWUFBWTtBQUNwQkosSUFBQUEsT0FBTyxDQUFDSyxPQUFSO0FBQ0QsR0FGUSxDQUFUO0FBSUFULEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVB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TUFBTSxDQUFDK0IsbUJBQVAsQ0FBMkJwQixNQUEzQixDQUFrQ1UsR0FBbEMsQ0FBc0MsRUFBdEM7QUFDRCxLQUhDLENBQUY7QUFJQXRCLElBQUFBLFFBQVEsQ0FBQyxxQkFBRCxFQUF3QixZQUFZO0FBQzFDLFVBQUl5QixjQUFjLEdBQUcsSUFBSXZCLFlBQUosRUFBckI7QUFDQSxVQUFJd0IsY0FBYyxHQUFHLElBQUl4QixZQUFKLEVBQXJCO0FBQ0F5QixNQUFBQSxNQUFNLENBQUMsWUFBWTtBQUNqQjFCLFFBQUFBLE1BQU0sQ0FBQzJCLGdCQUFQLENBQXdCSCxjQUF4QjtBQUNBeEIsUUFBQUEsTUFBTSxDQUFDMkIsZ0JBQVAsQ0FBd0JGLGNBQXhCO0FBQ0QsT0FISyxDQUFOO0FBSUFHLE1BQUFBLEtBQUssQ0FBQyxZQUFZO0FBQ2hCNUIsUUFBQUEsTUFBTSxDQUFDNkIsY0FBUCxHQUF3QixFQUF4QjtBQUNELE9BRkksQ0FBTDtBQUdBcEIsTUFBQUEsRUFBRSxDQUFDLHVEQUFELEVBQTBELFlBQVk7QUFDdEVULFFBQUFBLE1BQU0sQ0FBQzhCLG9CQUFQLENBQTRCLEVBQTVCO0FBQ0E5QixRQUFBQSxNQUFNLENBQUMrQixtQkFBUCxDQUEyQnBCLE1BQTNCLENBQWtDVSxHQUFsQyxDQUFzQyxFQUF0QztBQUNBRyxRQUFBQSxjQUFjLENBQUNPLG1CQUFmLENBQW1DcEIsTUFBbkMsQ0FBMENVLEdBQTFDLENBQThDLEVBQTlDO0FBQ0FJLFFBQUFBLGNBQWMsQ0FBQ00sbUJBQWYsQ0FBbUNwQixNQUFuQyxDQUEwQ1UsR0FBMUMsQ0FBOEMsRUFBOUM7QUFDRCxPQUxDLENBQUY7QUFNRCxLQWhCTyxDQUFSO0FBaUJELEdBdEJPLENBQVI7QUF1QkQsQ0E3SE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZURyaXZlciBmcm9tICcuLi8uLi8uLi9saWInO1xuaW1wb3J0IHsgY3JlYXRlU2FuZGJveCB9IGZyb20gJ3Npbm9uJztcblxuZGVzY3JpYmUoJ3RpbWVvdXQnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBkcml2ZXIgPSBuZXcgQmFzZURyaXZlcigpO1xuICBsZXQgaW1wbGljaXRXYWl0U3B5O1xuICBsZXQgc2FuZGJveDtcbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveCA9IGNyZWF0ZVNhbmRib3goKTtcbiAgICBkcml2ZXIuaW1wbGljaXRXYWl0TXMgPSAwO1xuICAgIGltcGxpY2l0V2FpdFNweSA9IHNhbmRib3guc3B5KGRyaXZlciwgJ3NldEltcGxpY2l0V2FpdCcpO1xuICB9KTtcbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG4gIC8vIGV4cGVjdGVkIGVycm9ycyBhcmUgZm9yIGNoZWNrcyBhZ2FpbnN0IHJ1bnRpbWUgdHlwZSBmYWlsdXJlcy4gdGhlIHR5cGVzIHdlJ3JlIGdpdmluZyB0aGUgZnVuY3Rpb24gYXJlIG5vdCBhbGxvd2VkXG4gIGRlc2NyaWJlKCd0aW1lb3V0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBkZXNjcmliZSgnZXJyb3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBzb21ldGhpbmcgcmFuZG9tIGlzIHNlbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cygncmFuZG9tIHRpbWVvdXQnLCAnaG93ZHknKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZDtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aW1lb3V0IGlzIG5lZ2F0aXZlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHMoJ3JhbmRvbSB0aW1lb3V0JywgLTQyKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZDtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvcnMgaWYgdGltZW91dCB0eXBlIGlzIHVua25vd24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cygncmFuZG9tIHRpbWVvdXQnLCA0Mikuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWQ7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgc29tZXRoaW5nIHJhbmRvbSBpcyBzZW50IHRvIHNjcmlwdER1cmF0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHModW5kZWZpbmVkLCB1bmRlZmluZWQsIDEyMywgdW5kZWZpbmVkLCB1bmRlZmluZWQpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHNvbWV0aGluZyByYW5kb20gaXMgc2VudCB0byBwYWdlTG9hZER1cmF0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIudGltZW91dHModW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMTIzLCB1bmRlZmluZWQpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgZGVzY3JpYmUoJ2ltcGxpY2l0IHdhaXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIGNhbGwgc2V0SW1wbGljaXRXYWl0IHdoZW4gZ2l2ZW4gYW4gaW50ZWdlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKCdpbXBsaWNpdCcsIDQyKTtcbiAgICAgICAgaW1wbGljaXRXYWl0U3B5LmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWU7XG4gICAgICAgIGltcGxpY2l0V2FpdFNweS5maXJzdENhbGwuYXJnc1swXS5zaG91bGQuZXF1YWwoNDIpO1xuICAgICAgICBkcml2ZXIuaW1wbGljaXRXYWl0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgY2FsbCBzZXRJbXBsaWNpdFdhaXQgd2hlbiBnaXZlbiBhIHN0cmluZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKCdpbXBsaWNpdCcsICc0MicpO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgICAgaW1wbGljaXRXYWl0U3B5LmZpcnN0Q2FsbC5hcmdzWzBdLnNob3VsZC5lcXVhbCg0Mik7XG4gICAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBjYWxsIHNldEltcGxpY2l0V2FpdCB3aGVuIGdpdmVuIGFuIGludGVnZXIgdG8gaW1wbGljaXREdXJhdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLnRpbWVvdXRzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNDIpO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgICAgaW1wbGljaXRXYWl0U3B5LmZpcnN0Q2FsbC5hcmdzWzBdLnNob3VsZC5lcXVhbCg0Mik7XG4gICAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBjYWxsIHNldEltcGxpY2l0V2FpdCB3aGVuIGdpdmVuIGEgc3RyaW5nIHRvIGltcGxpY2l0RHVyYXRpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci50aW1lb3V0cyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICc0MicpO1xuICAgICAgICBpbXBsaWNpdFdhaXRTcHkuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgICAgaW1wbGljaXRXYWl0U3B5LmZpcnN0Q2FsbC5hcmdzWzBdLnNob3VsZC5lcXVhbCg0Mik7XG4gICAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2ltcGxpY2l0V2FpdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgc2V0SW1wbGljaXRXYWl0IHdoZW4gZ2l2ZW4gYW4gaW50ZWdlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5pbXBsaWNpdFdhaXQoNDIpO1xuICAgICAgaW1wbGljaXRXYWl0U3B5LmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWU7XG4gICAgICBpbXBsaWNpdFdhaXRTcHkuZmlyc3RDYWxsLmFyZ3NbMF0uc2hvdWxkLmVxdWFsKDQyKTtcbiAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGNhbGwgc2V0SW1wbGljaXRXYWl0IHdoZW4gZ2l2ZW4gYSBzdHJpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuaW1wbGljaXRXYWl0KCc0MicpO1xuICAgICAgaW1wbGljaXRXYWl0U3B5LmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWU7XG4gICAgICBpbXBsaWNpdFdhaXRTcHkuZmlyc3RDYWxsLmFyZ3NbMF0uc2hvdWxkLmVxdWFsKDQyKTtcbiAgICAgIGRyaXZlci5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHNvbWV0aGluZyByYW5kb20gaXMgc2VudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5pbXBsaWNpdFdhaXQoJ2hvd2R5Jykuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWQ7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aW1lb3V0IGlzIG5lZ2F0aXZlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgZHJpdmVyLmltcGxpY2l0V2FpdCgtNDIpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2V0IGltcGxpY2l0IHdhaXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzZXQgdGhlIGltcGxpY2l0IHdhaXQgd2l0aCBhbiBpbnRlZ2VyJywgZnVuY3Rpb24gKCkge1xuICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdCg0Mik7XG4gICAgICBkcml2ZXIuaW1wbGljaXRXYWl0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgfSk7XG4gICAgZGVzY3JpYmUoJ3dpdGggbWFuYWdlZCBkcml2ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgbWFuYWdlZERyaXZlcjEgPSBuZXcgQmFzZURyaXZlcigpO1xuICAgICAgbGV0IG1hbmFnZWREcml2ZXIyID0gbmV3IEJhc2VEcml2ZXIoKTtcbiAgICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRyaXZlci5hZGRNYW5hZ2VkRHJpdmVyKG1hbmFnZWREcml2ZXIxKTtcbiAgICAgICAgZHJpdmVyLmFkZE1hbmFnZWREcml2ZXIobWFuYWdlZERyaXZlcjIpO1xuICAgICAgfSk7XG4gICAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRyaXZlci5tYW5hZ2VkRHJpdmVycyA9IFtdO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIHNldCB0aGUgaW1wbGljaXQgd2FpdCBvbiBtYW5hZ2VkIGRyaXZlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRyaXZlci5zZXRJbXBsaWNpdFdhaXQoNDIpO1xuICAgICAgICBkcml2ZXIuaW1wbGljaXRXYWl0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICAgIG1hbmFnZWREcml2ZXIxLmltcGxpY2l0V2FpdE1zLnNob3VsZC5lcWwoNDIpO1xuICAgICAgICBtYW5hZ2VkRHJpdmVyMi5pbXBsaWNpdFdhaXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ3NldCBuZXcgY29tbWFuZCB0aW1lb3V0JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc2V0IHRoZSBuZXcgY29tbWFuZCB0aW1lb3V0IHdpdGggYW4gaW50ZWdlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRyaXZlci5zZXROZXdDb21tYW5kVGltZW91dCg0Mik7XG4gICAgICBkcml2ZXIubmV3Q29tbWFuZFRpbWVvdXRNcy5zaG91bGQuZXFsKDQyKTtcbiAgICB9KTtcbiAgICBkZXNjcmliZSgnd2l0aCBtYW5hZ2VkIGRyaXZlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBtYW5hZ2VkRHJpdmVyMSA9IG5ldyBCYXNlRHJpdmVyKCk7XG4gICAgICBsZXQgbWFuYWdlZERyaXZlcjIgPSBuZXcgQmFzZURyaXZlcigpO1xuICAgICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLmFkZE1hbmFnZWREcml2ZXIobWFuYWdlZERyaXZlcjEpO1xuICAgICAgICBkcml2ZXIuYWRkTWFuYWdlZERyaXZlcihtYW5hZ2VkRHJpdmVyMik7XG4gICAgICB9KTtcbiAgICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLm1hbmFnZWREcml2ZXJzID0gW107XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgc2V0IHRoZSBuZXcgY29tbWFuZCB0aW1lb3V0IG9uIG1hbmFnZWQgZHJpdmVycycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZHJpdmVyLnNldE5ld0NvbW1hbmRUaW1lb3V0KDQyKTtcbiAgICAgICAgZHJpdmVyLm5ld0NvbW1hbmRUaW1lb3V0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICAgIG1hbmFnZWREcml2ZXIxLm5ld0NvbW1hbmRUaW1lb3V0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICAgIG1hbmFnZWREcml2ZXIyLm5ld0NvbW1hbmRUaW1lb3V0TXMuc2hvdWxkLmVxbCg0Mik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -45,7 +45,7 @@ describe('Protocol', function () {
45
45
  }
46
46
 
47
47
  let hash = shasum.digest('hex').substring(0, 8);
48
- hash.should.equal('262ca3c4');
48
+ hash.should.equal('7d48d815');
49
49
  });
50
50
  });
51
51
  describe('check route to command name conversion', function () {
@@ -77,4 +77,4 @@ describe('Protocol', function () {
77
77
  });
78
78
  });
79
79
  });
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9wcm90b2NvbC9yb3V0ZXMuc3BlYy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIml0Iiwic2hhc3VtIiwiY3J5cHRvIiwiY3JlYXRlSGFzaCIsInVybCIsInVybE1hcHBpbmciLCJfIiwidG9QYWlycyIsIk1FVEhPRF9NQVAiLCJ1cGRhdGUiLCJtZXRob2QiLCJtZXRob2RNYXBwaW5nIiwiY29tbWFuZCIsInBheWxvYWRQYXJhbXMiLCJhbGxQYXJhbXMiLCJmbGF0dGVuIiwicmVxdWlyZWQiLCJvcHRpb25hbCIsImNvbmNhdCIsInBhcmFtIiwid3JhcCIsImhhc2giLCJkaWdlc3QiLCJzdWJzdHJpbmciLCJzaG91bGQiLCJlcXVhbCIsImNtZE5hbWUiLCJyb3V0ZSIsImNoYWkiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUlBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQVk7QUFLL0JBLEVBQUFBLFFBQVEsQ0FBQyw2QkFBRCxFQUFnQyxZQUFZO0FBQ2xEQyxJQUFBQSxFQUFFLENBQUMsbURBQUQsRUFBc0QsWUFBWTtBQUNsRSxVQUFJQyxNQUFNLEdBQUdDLGdCQUFPQyxVQUFQLENBQWtCLE1BQWxCLENBQWI7O0FBQ0EsV0FBSyxJQUFJLENBQUNDLEdBQUQsRUFBTUMsVUFBTixDQUFULElBQThCQyxVQUFFQyxPQUFGLENBQVVDLG9CQUFWLENBQTlCLEVBQXFEO0FBQ25EUCxRQUFBQSxNQUFNLENBQUNRLE1BQVAsQ0FBY0wsR0FBZDs7QUFDQSxhQUFLLElBQUksQ0FBQ00sTUFBRCxFQUFTQyxhQUFULENBQVQsSUFBb0NMLFVBQUVDLE9BQUYsQ0FBVUYsVUFBVixDQUFwQyxFQUEyRDtBQUN6REosVUFBQUEsTUFBTSxDQUFDUSxNQUFQLENBQWNDLE1BQWQ7O0FBQ0EsY0FBSUMsYUFBYSxDQUFDQyxPQUFsQixFQUEyQjtBQUN6QlgsWUFBQUEsTUFBTSxDQUFDUSxNQUFQLENB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QUFuQixFQUEwQmpCLE1BQTFCLENBQWhCO0FBQ0FrQixRQUFBQSxJQUFJLENBQUNKLE1BQUwsR0FBY0MsS0FBZCxDQUFvQkMsT0FBcEIsRUFBNkJHLFNBQTdCO0FBQ0Q7QUFDRixLQUxDLENBQUY7QUFNRCxHQWhDTyxDQUFSO0FBa0NELENBdEVPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bW9jaGFcblxuaW1wb3J0IHsgXyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNRVRIT0RfTUFQLCByb3V0ZVRvQ29tbWFuZE5hbWUgfSBmcm9tICcuLi8uLi8uLi9saWIvcHJvdG9jb2wnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5cblxuZGVzY3JpYmUoJ1Byb3RvY29sJywgZnVuY3Rpb24gKCkge1xuXG4gIC8vIFRPRE8gdGVzdCBhZ2FpbnN0IGFuIGV4cGxpY2l0IHByb3RvY29sIHJhdGhlciB0aGFuIGEgaGFzaCBvZiBhIHByZXZpb3VzXG4gIC8vIHByb3RvY29sXG5cbiAgZGVzY3JpYmUoJ2Vuc3VyZSBwcm90b2NvbCBjb25zaXN0ZW5jeScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIG5vdCBjaGFuZ2UgcHJvdG9jb2wgYmV0d2VlbiBwYXRjaCB2ZXJzaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBzaGFzdW0gPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMScpO1xuICAgICAgZm9yIChsZXQgW3VybCwgdXJsTWFwcGluZ10gb2YgXy50b1BhaXJzKE1FVEhPRF9NQVApKSB7XG4gICAgICAgIHNoYXN1bS51cGRhdGUodXJsKTtcbiAgICAgICAgZm9yIChsZXQgW21ldGhvZCwgbWV0aG9kTWFwcGluZ10gb2YgXy50b1BhaXJzKHVybE1hcHBpbmcpKSB7XG4gICAgICAgICAgc2hhc3VtLnVwZGF0ZShtZXRob2QpO1xuICAgICAgICAgIGlmIChtZXRob2RNYXBwaW5nLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIHNoYXN1bS51cGRhdGUobWV0aG9kTWFwcGluZy5jb21tYW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1ldGhvZE1hcHBpbmcucGF5bG9hZFBhcmFtcykge1xuICAgICAgICAgICAgbGV0IGFsbFBhcmFtcyA9IF8uZmxhdHRlbihtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMucmVxdWlyZWQpO1xuICAgICAgICAgICAgaWYgKG1ldGhvZE1hcHBpbmcucGF5bG9hZFBhcmFtcy5vcHRpb25hbCkge1xuICAgICAgICAgICAgICBhbGxQYXJhbXMgPSBhbGxQYXJhbXMuY29uY2F0KF8uZmxhdHRlbihtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMub3B0aW9uYWwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IHBhcmFtIG9mIGFsbFBhcmFtcykge1xuICAgICAgICAgICAgICBzaGFzdW0udXBkYXRlKHBhcmFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMud3JhcCkge1xuICAgICAgICAgICAgICBzaGFzdW0udXBkYXRlKCdza2lwJyk7XG4gICAgICAgICAgICAgIHNoYXN1bS51cGRhdGUobWV0aG9kTWFwcGluZy5wYXlsb2FkUGFyYW1zLndyYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGhhc2ggPSBzaGFzdW0uZGlnZXN0KCdoZXgnKS5zdWJzdHJpbmcoMCwgOCk7XG4gICAgICAvLyBNb2RpZnkgdGhlIGhhc2ggd2hlbmV2ZXIgdGhlIHByb3RvY29sIGhhcyBpbnRlbnRpb25hbGx5IGJlZW4gbW9kaWZpZWQuXG4gICAgICBoYXNoLnNob3VsZC5lcXVhbCgnMjYyY2EzYzQnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NoZWNrIHJvdXRlIHRvIGNvbW1hbmQgbmFtZSBjb252ZXJzaW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcHJvcGVybHkgbG9va3VwIGNvcnJlY3QgY29tbWFuZCBuYW1lIGZvciBlbmRwb2ludCB3aXRoIHNlc3Npb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjbWROYW1lID0gcm91dGVUb0NvbW1hbmROYW1lKCcvdGltZW91dHMnLCAnUE9TVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ3RpbWVvdXRzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb3Blcmx5IGxvb2t1cCBjb3JyZWN0IGNvbW1hbmQgbmFtZSBmb3IgZW5kcG9pbnQgd2l0aCBzZXNzaW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZSgnL3RpbWVvdXRzL2ltcGxpY2l0X3dhaXQnLCAnUE9TVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ2ltcGxpY2l0V2FpdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9wZXJseSBsb29rdXAgY29ycmVjdCBjb21tYW5kIG5hbWUgZm9yIGVuZHBvaW50IHdpdGhvdXQgc2Vzc2lvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNtZE5hbWUgPSByb3V0ZVRvQ29tbWFuZE5hbWUoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICBjbWROYW1lLnNob3VsZC5lcXVhbCgnZ2V0U3RhdHVzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb3Blcmx5IGxvb2t1cCBjb3JyZWN0IGNvbW1hbmQgbmFtZSBmb3IgZW5kcG9pbnQgd2l0aG91dCBsZWFkaW5nIHNsYXNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZSgnc3RhdHVzJywgJ0dFVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ2dldFN0YXR1cycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9wZXJseSBsb29rdXAgY29ycmVjdCBjb21tYW5kIG5hbWUgZm9yIGZ1bGx5IHNwZWNpZmllZCBlbmRwb2ludCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNtZE5hbWUgPSByb3V0ZVRvQ29tbWFuZE5hbWUoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICBjbWROYW1lLnNob3VsZC5lcXVhbCgnZ2V0U3RhdHVzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBmaW5kIGNvbW1hbmQgbmFtZSBpZiBpbmNvcnJlY3QgaW5wdXQgZGF0YSBoYXMgYmVlbiBzcGVjaWZpZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKGxldCBbcm91dGUsIG1ldGhvZF0gb2YgW1snL3N0YXR1cycsICdQT1NUJ10sIFsnL3hzdGF0dXMnLCAnR0VUJ10sIFsnc3RhdHVzJywgJ1BPU1QnXV0pIHtcbiAgICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZShyb3V0ZSwgbWV0aG9kKTtcbiAgICAgICAgY2hhaS5zaG91bGQoKS5lcXVhbChjbWROYW1lLCB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxufSk7XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9wcm90b2NvbC9yb3V0ZXMuc3BlYy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIml0Iiwic2hhc3VtIiwiY3J5cHRvIiwiY3JlYXRlSGFzaCIsInVybCIsInVybE1hcHBpbmciLCJfIiwidG9QYWlycyIsIk1FVEhPRF9NQVAiLCJ1cGRhdGUiLCJtZXRob2QiLCJtZXRob2RNYXBwaW5nIiwiY29tbWFuZCIsInBheWxvYWRQYXJhbXMiLCJhbGxQYXJhbXMiLCJmbGF0dGVuIiwicmVxdWlyZWQiLCJvcHRpb25hbCIsImNvbmNhdCIsInBhcmFtIiwid3JhcCIsImhhc2giLCJkaWdlc3QiLCJzdWJzdHJpbmciLCJzaG91bGQiLCJlcXVhbCIsImNtZE5hbWUiLCJyb3V0ZSIsImNoYWkiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUlBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQVk7QUFLL0JBLEVBQUFBLFFBQVEsQ0FBQyw2QkFBRCxFQUFnQyxZQUFZO0FBQ2xEQyxJQUFBQSxFQUFFLENBQUMsbURBQUQsRUFBc0QsWUFBWTtBQUNsRSxVQUFJQyxNQUFNLEdBQUdDLGdCQUFPQyxVQUFQLENBQWtCLE1BQWxCLENBQWI7O0FBQ0EsV0FBSyxJQUFJLENBQUNDLEdBQUQsRUFBTUMsVUFBTixDQUFULElBQThCQyxVQUFFQyxPQUFGLENBQVVDLG9CQUFWLENBQTlCLEVBQXFEO0FBQ25EUCxRQUFBQSxNQUFNLENBQUNRLE1BQVAsQ0FBY0wsR0FBZDs7QUFDQSxhQUFLLElBQUksQ0FBQ00sTUFBRCxFQUFTQyxhQUFULENBQVQsSUFBb0NMLFVBQUVDLE9BQUYsQ0FBVUYsVUFBVixDQUFwQyxFQUEyRDtBQUN6REosVUFBQUEsTUFBTSxDQUFDUSxNQUFQLENBQWNDLE1BQWQ7O0FBQ0EsY0FBSUMsYUFBYSxDQUFDQyxPQUFsQixFQUEyQjtBQUN6QlgsWUFBQUEsTUFBTSxDQUFDUSxNQUFQLENB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QUFuQixFQUEwQmpCLE1BQTFCLENBQWhCO0FBQ0FrQixRQUFBQSxJQUFJLENBQUNKLE1BQUwsR0FBY0MsS0FBZCxDQUFvQkMsT0FBcEIsRUFBNkJHLFNBQTdCO0FBQ0Q7QUFDRixLQUxDLENBQUY7QUFNRCxHQWhDTyxDQUFSO0FBa0NELENBdEVPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bW9jaGFcblxuaW1wb3J0IHsgXyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNRVRIT0RfTUFQLCByb3V0ZVRvQ29tbWFuZE5hbWUgfSBmcm9tICcuLi8uLi8uLi9saWIvcHJvdG9jb2wnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5cblxuZGVzY3JpYmUoJ1Byb3RvY29sJywgZnVuY3Rpb24gKCkge1xuXG4gIC8vIFRPRE8gdGVzdCBhZ2FpbnN0IGFuIGV4cGxpY2l0IHByb3RvY29sIHJhdGhlciB0aGFuIGEgaGFzaCBvZiBhIHByZXZpb3VzXG4gIC8vIHByb3RvY29sXG5cbiAgZGVzY3JpYmUoJ2Vuc3VyZSBwcm90b2NvbCBjb25zaXN0ZW5jeScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIG5vdCBjaGFuZ2UgcHJvdG9jb2wgYmV0d2VlbiBwYXRjaCB2ZXJzaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBzaGFzdW0gPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMScpO1xuICAgICAgZm9yIChsZXQgW3VybCwgdXJsTWFwcGluZ10gb2YgXy50b1BhaXJzKE1FVEhPRF9NQVApKSB7XG4gICAgICAgIHNoYXN1bS51cGRhdGUodXJsKTtcbiAgICAgICAgZm9yIChsZXQgW21ldGhvZCwgbWV0aG9kTWFwcGluZ10gb2YgXy50b1BhaXJzKHVybE1hcHBpbmcpKSB7XG4gICAgICAgICAgc2hhc3VtLnVwZGF0ZShtZXRob2QpO1xuICAgICAgICAgIGlmIChtZXRob2RNYXBwaW5nLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIHNoYXN1bS51cGRhdGUobWV0aG9kTWFwcGluZy5jb21tYW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1ldGhvZE1hcHBpbmcucGF5bG9hZFBhcmFtcykge1xuICAgICAgICAgICAgbGV0IGFsbFBhcmFtcyA9IF8uZmxhdHRlbihtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMucmVxdWlyZWQpO1xuICAgICAgICAgICAgaWYgKG1ldGhvZE1hcHBpbmcucGF5bG9hZFBhcmFtcy5vcHRpb25hbCkge1xuICAgICAgICAgICAgICBhbGxQYXJhbXMgPSBhbGxQYXJhbXMuY29uY2F0KF8uZmxhdHRlbihtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMub3B0aW9uYWwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IHBhcmFtIG9mIGFsbFBhcmFtcykge1xuICAgICAgICAgICAgICBzaGFzdW0udXBkYXRlKHBhcmFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXRob2RNYXBwaW5nLnBheWxvYWRQYXJhbXMud3JhcCkge1xuICAgICAgICAgICAgICBzaGFzdW0udXBkYXRlKCdza2lwJyk7XG4gICAgICAgICAgICAgIHNoYXN1bS51cGRhdGUobWV0aG9kTWFwcGluZy5wYXlsb2FkUGFyYW1zLndyYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGhhc2ggPSBzaGFzdW0uZGlnZXN0KCdoZXgnKS5zdWJzdHJpbmcoMCwgOCk7XG4gICAgICAvLyBNb2RpZnkgdGhlIGhhc2ggd2hlbmV2ZXIgdGhlIHByb3RvY29sIGhhcyBpbnRlbnRpb25hbGx5IGJlZW4gbW9kaWZpZWQuXG4gICAgICBoYXNoLnNob3VsZC5lcXVhbCgnN2Q0OGQ4MTUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NoZWNrIHJvdXRlIHRvIGNvbW1hbmQgbmFtZSBjb252ZXJzaW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcHJvcGVybHkgbG9va3VwIGNvcnJlY3QgY29tbWFuZCBuYW1lIGZvciBlbmRwb2ludCB3aXRoIHNlc3Npb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjbWROYW1lID0gcm91dGVUb0NvbW1hbmROYW1lKCcvdGltZW91dHMnLCAnUE9TVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ3RpbWVvdXRzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb3Blcmx5IGxvb2t1cCBjb3JyZWN0IGNvbW1hbmQgbmFtZSBmb3IgZW5kcG9pbnQgd2l0aCBzZXNzaW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZSgnL3RpbWVvdXRzL2ltcGxpY2l0X3dhaXQnLCAnUE9TVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ2ltcGxpY2l0V2FpdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9wZXJseSBsb29rdXAgY29ycmVjdCBjb21tYW5kIG5hbWUgZm9yIGVuZHBvaW50IHdpdGhvdXQgc2Vzc2lvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNtZE5hbWUgPSByb3V0ZVRvQ29tbWFuZE5hbWUoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICBjbWROYW1lLnNob3VsZC5lcXVhbCgnZ2V0U3RhdHVzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb3Blcmx5IGxvb2t1cCBjb3JyZWN0IGNvbW1hbmQgbmFtZSBmb3IgZW5kcG9pbnQgd2l0aG91dCBsZWFkaW5nIHNsYXNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZSgnc3RhdHVzJywgJ0dFVCcpO1xuICAgICAgY21kTmFtZS5zaG91bGQuZXF1YWwoJ2dldFN0YXR1cycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcm9wZXJseSBsb29rdXAgY29ycmVjdCBjb21tYW5kIG5hbWUgZm9yIGZ1bGx5IHNwZWNpZmllZCBlbmRwb2ludCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNtZE5hbWUgPSByb3V0ZVRvQ29tbWFuZE5hbWUoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICBjbWROYW1lLnNob3VsZC5lcXVhbCgnZ2V0U3RhdHVzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBmaW5kIGNvbW1hbmQgbmFtZSBpZiBpbmNvcnJlY3QgaW5wdXQgZGF0YSBoYXMgYmVlbiBzcGVjaWZpZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKGxldCBbcm91dGUsIG1ldGhvZF0gb2YgW1snL3N0YXR1cycsICdQT1NUJ10sIFsnL3hzdGF0dXMnLCAnR0VUJ10sIFsnc3RhdHVzJywgJ1BPU1QnXV0pIHtcbiAgICAgICAgY29uc3QgY21kTmFtZSA9IHJvdXRlVG9Db21tYW5kTmFtZShyb3V0ZSwgbWV0aG9kKTtcbiAgICAgICAgY2hhaS5zaG91bGQoKS5lcXVhbChjbWROYW1lLCB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxufSk7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/mutable.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/remove-index-signature.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/promise-value.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/utilities.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../support/build/lib/log-internal.d.ts","../../../node_modules/axios/index.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/buffer/index.d.ts","../../support/build/lib/image-util.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../support/build/lib/env.d.ts","../../support/build/lib/index.d.ts","../lib/constants.js","../../../node_modules/@types/async-lock/index.d.ts","../lib/protocol/validators.js","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../lib/protocol/errors.js","../lib/protocol/routes.js","../lib/basedriver/logger.js","../lib/basedriver/helpers.js","../lib/protocol/helpers.js","../lib/helpers/capabilities.js","../lib/protocol/protocol.js","../lib/protocol/index.js","../../../node_modules/validate.js/validate.d.ts","../lib/basedriver/desired-caps.js","../lib/basedriver/capabilities.js","../lib/basedriver/device-settings.js","../lib/basedriver/core.js","../lib/basedriver/commands/timeout.js","../lib/basedriver/commands/event.js","../lib/basedriver/commands/find.js","../lib/basedriver/commands/log.js","../lib/basedriver/commands/settings.js","../lib/basedriver/commands/session.js","../lib/basedriver/commands/index.js","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../lib/basedriver/driver.js","../lib/express/logger.js","../lib/express/static.js","../../../node_modules/@types/serve-favicon/index.d.ts","../../../node_modules/@types/method-override/index.d.ts","../../../node_modules/@colors/colors/index.d.ts","../lib/express/express-logging.js","../lib/express/idempotency.js","../lib/express/middleware.js","../lib/express/crash.js","../lib/express/websocket.js","../lib/express/server.js","../lib/jsonwp-status/status.js","../lib/jsonwp-proxy/protocol-converter.js","../lib/jsonwp-proxy/proxy.js","../lib/index.js","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2f93dda35dafec68ec217c9ce67f0f4fbbbb030c055ac312641565ad60dd7e26","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","c665d5c50c2573aefd98f0ffb12c5583e333ed94294ce6f144a4163a8c84f09b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"839e0b959028f5385ca8de7b9d9c00d71a5955d52d2c98cb3e488a626f7b90b3","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","ebdec596e6c49602efbfe9cee483ff982e998608bd41db07da1feca311eadab4","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"7e54932a41fec3a9c7e0753e52c8b18cc67b3ffdd01aaacd49b73d638186ee22","af4e1dce65c1820f6fe21bdf2c3931209c539cb498da760f05ab709f2033f2b3","73ab4f2d7964bbad113751c4d13dac7b834407ef4570b50ff67b3b765c07d312","d70d12830ae15bd5967b2b38cb7e24b3ba43bff853e305b33ed519253055ce08","c0618e33d0191171349412c9c7b983bc05081c29c635da9003a6cf7bc5d81746","c974e1ad2639f94de0b566947273e3f3b2dad004c9383bf0ea8df7cf96b1afea","5ab8773f7671da7bafa0f95a5530425a3e8374b8de4f352e64f6dd48c65681ed","bcaa4b2494b205265de37f2b4d5def521055753e8ac8aaabdfb53fd514e2bfb4","2c04fbe9e9b0ca02a0e6a549d21274b72424f3b091416fd63229114c6ac255b7","c19d76cf730f70c239ddcdc84cb78123f43964866e3cedf1ec98f640c5f3ea25","99e9a144144565db9b916035289ee80760c7542170a182312d8c9f4dcca1c276","248957877dde8ba14cd9b8d45947523da23e2fb467646e57cd902a76b2fc693b","1043a791036b9136fe8b3e287b24f14df803a503f6abb3f347b48d1c444a6954","094501dd2107ce40723bbcf30fbc0012631031c3337cbcc2dad153d8d550d7bc","bc1ed67a1d1491918740d86502e5b86369f4b7d6af10ca86340e6df9218ed9c9","55b7d009c3e8bae890063ebbb9c299d14edab7bbe9f98bceb12ef6979b1698fe","c5efedb8f1bd29ca1fd7720a45087344e14d1ea66378ac470450ea00d0f63975","161156b76821d27d22affa815f02d96706aa0861751aece957b5740dd33139ca","4023372ecd33decd9e17cd21272a86403ad60a4a913ccde6b01982a8535db442","d62e0155e4e6eb3d7a799e1fb555bb24ed6ecbebd158f87fc31e98ec6b5fcf73","c38b9f9179364943113b3eb1dd1d86d580dd1b56b68203ced15a013e9e317f29","e157c542921a03c19bafc06a1ae6bfc377359b0d88d8995591a8cdc66d7bf027","491357771c3101332dbd241a58b3733c194a1ed1ca92e371361e702c8849afe2","d1406b0eee2a415d31130b6e8771b6d0eddf70658efbafe9723aad38f58dc63c","b05b738e0e28dfa84e59a038c8287335b6ca9f16c858bd95ed930de0845f18af","dff0fdb7dc8f8ed00db44b493f77b921312ce9ed8493cda4cc82a92e48914756","338aeec8241a5d326cf4afd96408f6ff36b20ff461ee35597bf84a8f707a2745","13b6d7b987a6c306c0f7d27d77136797edc88ac47fd5893c93b8ed51f9912be9","cfa6b71c0cb889d2a210dac350ef928d532cadb26f4035bc405ef03f80b4ce17","4de53c71c9fc54d7fa8870b95b44092ff53eb6fddcfd402e360ac421318f1ca8","1c6c29857deb02e33ec045a67c375eb210a3ea4bc61b5e8078d2fab2ebf7831e","8f36a2e511f634b14983b31199a813b6d91e9f5c8ca1a81c446cfcbe3a8cda45","7e7bf5e592f90ac5784005a7d10f9960d6ff02edebdc18ab87f8cb154d5c16ab","e1b74834e5baec5460bd44dd7c5e389337ebe9eb7903743d1a9dd5b75702ac73","5d4143cf9c0350f01ed6e3d72953c4d22b4abda0a0b2c6d83a595ca061a367a4","9aaf4ee44bdac023b659f1b5e8cfdf56f774edd182c4fec46708d79f6a762298","87b0641dd8bb365de2f97ec5be3ea7aa1bd714ea43f76b6b36039c5dd194e3eb","a47240f5153913c434c66cd660bbcbb01c97f6717756a14c2f59ac7feb49a134","b415d8fc78ef908cc3f02d031e5e9a1cf269dd386212aedd273a0601de175bac","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","4372b912f51cbf9f0da164599e0934031bff3f5135af1cd6425bd9e384167e0b","5a988bc94b1937ee835a83ae7bb7555a21b8bbcdfd4c8c705d1789d7a8244bc2","0eda42cf7a88e5186bbab20c42eef4cc3a7377da80c71a7bae01f224223f667c","3b2f213b50c0a3abc9ee877b3af6cb7d42bd7939c00801bfc39cb44fb9a4ac05","b484c72c73b4ae0cdee6bfb85f0ae6152b4435b59169fb460044305ef18429cf","d9df799b7d4d7d9a24b201ddffc575b1840e25f1a273650de6eef40f384b6239","ca89e452207fee3233d2cb45c28ad0a4a7e30ddf40b9ac69891dd2242859c6f9","dac79ace008b4b9147644e4d8834b4a62378990e1a1730843ac488fdf6ff5f32","54f6aeeb17ad58793455ad005027bc452b722f31755ac4d15c46bef05f941e58","48fc89daea2775641083563b0671d541dfa464f4aed9ecd6d1e1f61647e759d1","55eb179223f788fcb055cba854b63effc973f7d51cf130ab866fc161c30dd918","03107dc521b6273cf190f0be264b6f69cb43355c24320cc9e760c9ab6a7fdb22","8fb7a5ccc8533b5950772a7722d1f99c846274c7dec01d40c8f96f4fb559a7b8","1a9958339bc9d1092c53a7f13c08d29eac812534c3f61c7c7a2157ef558131a1","30137eda48ba9ccce5dfd6fa79dea587739cddfab6e280fc85f019d21488b393","e6c5a9682cb3328d41eb7f25fa231075f29307319a9d7ac679e52a7b74b6539c","0617c0c6bc0e35226b6000ef3e47fc45697348d33c305e61484b7d264f4737da","73a5569de4e23f58160c68e74b48587950b118d0105f9d71b86ae40fa5c258c4","16d7f5de02bfb62a7a69ef9497c790ed4a8119ce159b14cb763f2432298286e8","c79b44c1518bd3d1ad75aa82f2e54be1bde86cd7663624874c4047a8fc97f833","047f4ee6646463fb4fa44cd6d8083342713a4704693ce64942e77f62a1da0c38","1ccd27d6127a24d5abe36413f68b5e928c9e6f2cbab9825898379ecf18108dc2","baa32aa38cd8ac7128c5a5817a32d8dc8fd8d635a647b16a12485ae27df107ed","2641aff32336e35a5b702aa2d870a0891da29dc1c19ae48602678e2050614041","afb49d6869006d1ecab1c821fffaba08ff9fcbee6a23d1c25b1d894f7e2a727e","0a291a265ed539906809ac356e112b1b02226acd5db0707d0dbd6272d0ae7bd1","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","e8a3a142b4aa3acd0d61105fcffb3258a84560f94d13c362aae42925609c74e8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","2dfe19de498444b172b62f86063f4a075203f023c35b860aa6a0e9e84ea901fe","013825efd63394b0b8869432cfb1d3879189aba9a0da979df808dc3fe55624e9","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","2808645b990069e5f8b5ff14c9f1e6077eb642583c3f7854012d60757f23c70e","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","3859648477a239f3a210119e53b0d3b455b9760bf38bed50a933326ae00f0c83","ba00bb2ada9a5b7e0ab18c7282c0161f5af809112e4439b35c8b3853f7d436a7","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","dda8410786fe1a473b420c6b95ab797b3cdac5705806ada1e062754b13291e79","60a4f4d1acdf72f3f07b9750884ca59e0d0333f016c071cb97215132c0625e67","7edae9abf00228304f215d24f9c1d5e87b6fd09e1f0eebebe5348772c2d7afd3","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"aef0597f694334e5da630438a38b966d7da7b5265af8f0f3685d1baf42df5178","affectsGlobalScope":true},"10487580175f86d0789473002b4b6e6606f9a4d7d3965f91066361aa8629297a","7b98187f36117de7c6be031cd0fecd133a1965da7e65f995fb1e329b9b892902","0c986e09efecf29b8cef361937b46764750dbb8902241ae5f0ab4e6fd526bbd2","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","d8eeb61233755ec2ff1fee38ab3a423843128e499d69d62e90e54d436fc0890c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","bfea1f2e8cfd701e13959c0d169f3881518627c561aa3ff737cd7c884669332b","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","804867f5fca5c3dc223c5cd72d9a67f55054c9470d8070b82c6c60af12ed947c","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"527f5003200ae2336b474ff3c190916a2591f8260d68e1d93c1c6b276231fbda","0a953abb3c7483a9ca87e3adcc0a9799450b4b9be169c041bd77fa17a59303ea","5b4111878161dc124627d353bfb3f28bb948ed4534c9582cc59851a37a41f4a2","4a6cfa489f007805fec38a25b8c38889c41c6a9c5875a24625ac2cf3ce9f046d","cb312c8c1a17d9974d6fe977a231b9efbd042e69fa06c3b0d344a118a44d3c8e","87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f","66a60804d1370f2c24c56a6586d8ea5c37ea95122e9cc44b4b5caded471ba32b","edfdf83f14ede39a37f69fbb66b1143fe01ace4ea36035852b57d66f2e8b0955","b21aa78586062705d8970cf1c807064093be883d694c08449e0f0c3fc6e89e48","82bdbb5b63891388bf669763b5d7d2f89c7875211704dc50a712080868365d71","35aa4f6d6a4df5500dd85699f9489e9a47ab6b530c07266349be435441090d2b","b0f2f0dede58b0901dd2fa6712f561cc2df14d036f51b1d116b7144a7a9e3d8d","d9db100e66eb85bd3b5adb0dfbf0638a245a659cf1ef735ce5febdcb50f0bc96","18ce40c026317ac349458b4c95a02df3af61823d12fe70ae942aebc5f2ffc1e2","725dccff633196df66545215b99e54bbdab4b9c1b54f1324cf6a44d4464b5c7b","10ccf32d777f1cffd4b212598021b068c416e20a23178068f7a7c3fd75cb61b8","0375d9b2718beeec379ae559e317caaac05bc684653c3e37f937967d2f17a937","bca193c80dd6ba9bc23c84805f8e9a0a984b7010be68e494bd6c946dd4546297","8b0c492f4de3a56455735d617103fe8732bfa0bc064817af569acc344c3ce819","41b288384a08593480b5f40f42af59b5e6f6ac5c031b076d19c9266933d3fbeb","57f9c6b92ec5b9233a8e5154cc3dc838ad5bd4a6a895d7d3b00fffb379405034","e20ef76b4e342bc3dee0ee59430d7c302b38f66509d71538c592d7a846f9815f","8bba36c76a94ff2ce3c5e97696070f090ce96c4e0d49e82aea0db654e132a60c","e77a01ccfee19f59ba523ca259d9fa7d0f1e325f0b0e72a9927f1d575563352f","586bdd44d7b3a68cac05609daa4c9d2e44367b6cf4260768b1cc87a3e44bf502","cd5d63fbb4e48df16eb0f7482f0d6da11d79c8511d5570ad6f4df66a5e0fa7f0","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","20399bd26cff7a7d8494ca0a09daa50afce33987d876292eb86b0fedce16a0af","3073deacab901cba55e5e80401b48e4a9257ee0b1f4162cfb4551b97942ae80c","bbf5444006f464d51b9a497c70307b8ad079517a9bf3cde24db6a7ae2e536628","2da5ca3148a44b80cf1358343069f62435567945f56671ddee2ab70a56dc701e","f968c02e8044479c5f6e3334fd48fa7085e44be7d146ef0660c5672e3b36ad65",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"37cf87bd8ba4ef1ab1d01b4b0373de55204454d5839da256dac3238961edbc8c","36fd2b076e6be74bd0d46e08c2283d5261dc29a5316342527826aa282e921bec","68b8ea37ed76b73b8f1a8dfb9aa9fb7006b0cb92270116bacffa775dcb6d1bf1","625564f9c32c9796fb857da120eb52e3e9293634f051ab2c0cc4dd845ba91b26","bfef2e1f39aeb647a5a72a5d27e192af7c9b699b7d69981943007a3c415e8239","41cebf8a91100bffdc2a61094e07bfbe0063a45f08d0f655a33e87054a350f05","ba19aaa517d2bcb001f1df0cce244c2bbc431c024cc72c761ffd5716c6101f1c","7298962a2baf11642b4908e23f06a4c216947e6d8623e2f93b7b2abcd6a5d57b","0e89b4cce58a5796974c90d3c25ebfdbe6f09701eca7cac9841acd4331a3bda7","a0e58baed386499fb1b15453766a5a6cadfbaa1aa6a4f86bfc6214d4e58916ff",{"version":"30bf01dd2e284098445264c8d71c608890cc11c142f36d0193aa655bdc0a40cb","affectsGlobalScope":true},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","24a09dc3e07d69b0a224dbd14b2994c40d1efd0954e759004b61b9e683dabe5f",{"version":"0fd3b5704bf037608646df5aa053fd06819ff69302ff6ada9736c300f79df852","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"module":5,"outDir":"./","removeComments":false,"rootDir":"..","strictNullChecks":true,"target":2},"fileIdsList":[[98],[98,236],[98,231],[98,231,232,233,234,235],[98,232],[98,232,234],[98,235],[98,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263],[98,237,238,239,240,241],[73,98,105,322],[98,342],[73,98,105],[70,73,98,105,317,318],[98,318,319,321,323],[70,71,98,105,183],[71,87,98,105],[98,273,275,276,277,278,279,280,281,282,283,284,285],[98,273,274,276,277,278,279,280,281,282,283,284,285],[98,274,275,276,277,278,279,280,281,282,283,284,285],[98,273,274,275,277,278,279,280,281,282,283,284,285],[98,273,274,275,276,278,279,280,281,282,283,284,285],[98,273,274,275,276,277,279,280,281,282,283,284,285],[98,273,274,275,276,277,278,280,281,282,283,284,285],[98,273,274,275,276,277,278,279,281,282,283,284,285],[98,273,274,275,276,277,278,279,280,282,283,284,285],[98,273,274,275,276,277,278,279,280,281,283,284,285],[98,273,274,275,276,277,278,279,280,281,282,284,285],[98,273,274,275,276,277,278,279,280,281,282,283,285],[98,273,274,275,276,277,278,279,280,281,282,283,284],[98,324],[71,98,105],[55,98],[58,98],[59,64,98],[60,70,71,78,87,97,98],[60,61,70,78,98],[62,98],[63,64,71,79,98],[64,87,94,98],[65,67,70,78,98],[66,98],[67,68,98],[69,70,98],[70,98],[70,71,72,87,97,98],[70,71,72,87,98],[73,78,87,97,98],[70,71,73,74,78,87,94,97,98],[73,75,87,94,97,98],[55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],[70,76,98],[77,97,98],[67,70,78,87,98],[79,98],[80,98],[58,81,98],[82,96,98,102],[83,98],[84,98],[70,85,98],[85,86,98,100],[70,87,88,89,98],[87,89,98],[87,88,98],[90,98],[91,98],[70,92,93,98],[92,93,98],[64,78,94,98],[95,98],[78,96,98],[59,73,84,97,98],[64,98],[87,98,99],[98,100],[98,101],[59,64,70,72,81,87,97,98,100,102],[87,98,103],[87,98,103,105],[71,98,105,184],[73,98,105,320],[98,342,344],[98,343],[60,70,97,98,105],[70,87,98,105],[98,220],[98,221],[98,215],[98,217,218,219,220,221,222,223],[73,75,97,98,105,216,218,219,221],[70,71,98,105],[98,105,217,220,221],[70,98,105,220,221],[98,292,293,294,295],[98,236,242,264],[98,201,202],[98,191,192,193,194,195,196,197,198,199,200],[98,191],[98,192],[98,201],[98,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174],[98,130],[98,130,143],[98,150,151],[98,152],[98,112,132],[98,132],[98,150],[98,155],[98,141],[98,111],[98,149,150,151],[98,107],[98,125],[98,109],[98,159],[98,157],[98,112,113],[98,123],[98,161],[98,112],[98,155,164,167],[98,226,285,287,297,299,306],[98,226,285,310,325],[98,226,304,311,325],[98,310,311,312,313,314,315,325],[98,226,285,312,325],[98,226,285,314,325],[98,226,313,325],[98,226,285,287,304,325],[70,79,98,226,285,287,288,289,300,304,306,307,308],[98,181,226,299,305],[98,226,285,287,297,299],[98,175,181,226,285,287,300,302,304,307,309,316,324],[80,97,98,208,226,285,287,289,299],[98,287],[98,304],[98,285,288,326,330],[70,79,80,98,287,326],[98,285,304,326,332],[70,73,80,98,181,285,288,323,324,326,327,328,329,331,333,334,335],[80,98,181,285,287,326],[97,98,181,285],[98,226,285],[98,181,288,304,307,308,309,325,327,335,336,337,339],[98,285,287,288,300],[73,75,98,208,285,287,288,297,301,304,337,338],[98,285],[98,285,287,291,296],[98,285,288,300],[98,297,298,303],[98,181,285,287,288,290,297,298,301,302],[98,226,285,287,288],[98,210],[98,211],[98,203,285],[71,98,105,181,184,185,186,187,188,189,190,203],[59,98,105,265,266],[98,176,177,178,182,204,205,206,227,228,230,268,269,270,271,272,286],[98,207,226],[87,98],[98,208],[98,106,175],[98,179,180,181],[98,229],[98,224],[98,212,213],[70,73,98,105,175,208,209,213,214,225]],"referencedMap":[[330,1],[239,2],[232,3],[233,3],[236,4],[231,5],[235,6],[234,7],[241,2],[237,2],[243,2],[244,2],[245,2],[246,2],[247,2],[248,2],[249,2],[250,2],[251,2],[252,2],[253,2],[254,2],[255,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,8],[238,2],[240,2],[242,9],[289,1],[181,1],[323,10],[346,11],[342,1],[322,12],[319,13],[324,14],[184,15],[210,1],[190,16],[274,17],[275,18],[273,19],[276,20],[277,21],[278,22],[279,23],[280,24],[281,25],[282,26],[283,27],[284,28],[285,29],[329,30],[320,1],[183,1],[341,1],[185,1],[187,31],[55,32],[56,32],[58,33],[59,34],[60,35],[61,36],[62,37],[63,38],[64,39],[65,40],[66,41],[67,42],[68,42],[69,43],[70,44],[71,45],[72,46],[57,1],[104,1],[73,47],[74,48],[75,49],[105,50],[76,51],[77,52],[78,53],[79,54],[80,55],[81,56],[82,57],[83,58],[84,59],[85,60],[86,61],[87,62],[89,63],[88,64],[90,65],[91,66],[92,67],[93,68],[94,69],[95,70],[96,71],[97,72],[98,73],[99,74],[100,75],[101,76],[102,77],[103,78],[202,1],[209,44],[266,79],[318,1],[317,1],[186,80],[328,30],[321,81],[180,1],[345,82],[344,83],[343,1],[106,84],[179,1],[188,1],[229,85],[221,86],[222,87],[216,88],[217,1],[224,89],[220,90],[219,91],[218,92],[223,93],[208,1],[267,1],[291,1],[296,94],[295,1],[294,1],[293,1],[292,1],[265,95],[203,96],[201,97],[191,1],[192,1],[198,98],[195,1],[194,99],[193,1],[200,100],[199,1],[197,98],[196,99],[189,1],[175,101],[131,102],[144,103],[109,1],[152,104],[154,105],[153,105],[133,106],[132,1],[134,107],[155,108],[159,109],[157,109],[142,110],[141,1],[112,111],[137,1],[171,112],[167,111],[111,113],[126,114],[140,1],[169,1],[145,115],[156,109],[160,116],[158,117],[172,1],[147,1],[123,113],[116,1],[115,118],[138,111],[139,111],[114,118],[148,1],[110,1],[125,1],[173,119],[121,111],[161,105],[163,120],[162,120],[107,1],[124,1],[130,1],[122,111],[120,1],[119,1],[117,121],[118,1],[146,1],[168,122],[127,118],[128,118],[143,1],[113,1],[164,109],[166,116],[165,117],[151,1],[149,1],[136,1],[170,1],[174,1],[108,1],[135,1],[150,1],[129,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[215,1],[305,1],[307,123],[311,124],[312,125],[316,126],[313,127],[315,128],[314,129],[310,130],[309,131],[306,132],[308,133],[325,134],[300,135],[299,136],[288,136],[334,137],[331,138],[332,139],[326,136],[333,140],[336,141],[327,142],[335,143],[302,144],[340,145],[338,146],[339,147],[337,148],[297,149],[301,150],[304,151],[303,152],[298,153],[290,148],[211,154],[212,155],[286,156],[204,157],[268,158],[287,159],[207,1],[227,160],[270,161],[206,31],[269,162],[271,1],[176,163],[205,1],[228,1],[178,1],[177,1],[272,1],[182,164],[230,165],[213,1],[225,166],[214,167],[226,168]],"exportedModulesMap":[[330,1],[239,2],[232,3],[233,3],[236,4],[231,5],[235,6],[234,7],[241,2],[237,2],[243,2],[244,2],[245,2],[246,2],[247,2],[248,2],[249,2],[250,2],[251,2],[252,2],[253,2],[254,2],[255,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,8],[238,2],[240,2],[242,9],[289,1],[181,1],[323,10],[346,11],[342,1],[322,12],[319,13],[324,14],[184,15],[210,1],[190,16],[274,17],[275,18],[273,19],[276,20],[277,21],[278,22],[279,23],[280,24],[281,25],[282,26],[283,27],[284,28],[285,29],[329,30],[320,1],[183,1],[341,1],[185,1],[187,31],[55,32],[56,32],[58,33],[59,34],[60,35],[61,36],[62,37],[63,38],[64,39],[65,40],[66,41],[67,42],[68,42],[69,43],[70,44],[71,45],[72,46],[57,1],[104,1],[73,47],[74,48],[75,49],[105,50],[76,51],[77,52],[78,53],[79,54],[80,55],[81,56],[82,57],[83,58],[84,59],[85,60],[86,61],[87,62],[89,63],[88,64],[90,65],[91,66],[92,67],[93,68],[94,69],[95,70],[96,71],[97,72],[98,73],[99,74],[100,75],[101,76],[102,77],[103,78],[202,1],[209,44],[266,79],[318,1],[317,1],[186,80],[328,30],[321,81],[180,1],[345,82],[344,83],[343,1],[106,84],[179,1],[188,1],[229,85],[221,86],[222,87],[216,88],[217,1],[224,89],[220,90],[219,91],[218,92],[223,93],[208,1],[267,1],[291,1],[296,94],[295,1],[294,1],[293,1],[292,1],[265,95],[203,96],[201,97],[191,1],[192,1],[198,98],[195,1],[194,99],[193,1],[200,100],[199,1],[197,98],[196,99],[189,1],[175,101],[131,102],[144,103],[109,1],[152,104],[154,105],[153,105],[133,106],[132,1],[134,107],[155,108],[159,109],[157,109],[142,110],[141,1],[112,111],[137,1],[171,112],[167,111],[111,113],[126,114],[140,1],[169,1],[145,115],[156,109],[160,116],[158,117],[172,1],[147,1],[123,113],[116,1],[115,118],[138,111],[139,111],[114,118],[148,1],[110,1],[125,1],[173,119],[121,111],[161,105],[163,120],[162,120],[107,1],[124,1],[130,1],[122,111],[120,1],[119,1],[117,121],[118,1],[146,1],[168,122],[127,118],[128,118],[143,1],[113,1],[164,109],[166,116],[165,117],[151,1],[149,1],[136,1],[170,1],[174,1],[108,1],[135,1],[150,1],[129,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[215,1],[305,1],[307,123],[311,124],[312,125],[316,126],[313,127],[315,128],[314,129],[310,130],[309,131],[306,132],[308,133],[325,134],[300,135],[299,136],[288,136],[334,137],[331,138],[332,139],[326,136],[333,140],[336,141],[327,142],[335,143],[302,144],[340,145],[338,146],[339,147],[337,148],[297,149],[301,150],[304,151],[303,152],[298,153],[290,148],[211,154],[212,155],[286,156],[204,157],[268,158],[287,159],[207,1],[227,160],[270,161],[206,31],[269,162],[271,1],[176,163],[205,1],[228,1],[178,1],[177,1],[272,1],[182,164],[230,165],[213,1],[225,166],[214,167],[226,168]],"semanticDiagnosticsPerFile":[330,239,232,233,236,231,235,234,241,237,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,238,240,242,289,181,323,346,342,322,319,324,184,210,190,274,275,273,276,277,278,279,280,281,282,283,284,285,329,320,183,341,185,187,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,57,104,73,74,75,105,76,77,78,79,80,81,82,83,84,85,86,87,89,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,202,209,266,318,317,186,328,321,180,345,344,343,106,179,188,229,221,222,216,217,224,220,219,218,223,208,267,291,296,295,294,293,292,265,203,201,191,192,198,195,194,193,200,199,197,196,189,175,131,144,109,152,154,153,133,132,134,155,159,157,142,141,112,137,171,167,111,126,140,169,145,156,160,158,172,147,123,116,115,138,139,114,148,110,125,173,121,161,163,162,107,124,130,122,120,119,117,118,146,168,127,128,143,113,164,166,165,151,149,136,170,174,108,135,150,129,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,45,41,42,43,44,9,49,46,47,48,50,10,51,52,53,2,1,11,54,15,14,215,305,307,311,312,316,313,315,314,310,309,306,308,325,300,299,288,334,331,332,326,333,336,327,335,302,340,338,339,337,297,301,304,303,298,290,211,212,286,204,268,287,207,227,270,206,269,271,176,205,228,178,177,272,182,230,213,225,214,226]},"version":"4.6.3"}
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  import _ from 'lodash';
2
4
  import { validator } from './desired-caps';
3
5
  import { util } from '@appium/support';
@@ -10,6 +12,11 @@ const PREFIXED_APPIUM_OPTS_CAP = `${APPIUM_VENDOR_PREFIX}${APPIUM_OPTS_CAP}`;
10
12
 
11
13
  // Takes primary caps object and merges it into a secondary caps object.
12
14
  // (see https://www.w3.org/TR/webdriver/#dfn-merging-capabilities)
15
+ /**
16
+ * @param {Capabilities} [primary]
17
+ * @param {Capabilities} [secondary]
18
+ * @returns {Capabilities}
19
+ */
13
20
  function mergeCaps (primary = {}, secondary = {}) {
14
21
  let result = Object.assign({}, primary);
15
22
 
@@ -25,6 +32,13 @@ function mergeCaps (primary = {}, secondary = {}) {
25
32
  }
26
33
 
27
34
  // Validates caps against a set of constraints
35
+ /**
36
+ *
37
+ * @param {Capabilities} caps
38
+ * @param {Constraints} [constraints]
39
+ * @param {ValidateCapsOpts} [opts]
40
+ * @returns {Capabilities}
41
+ */
28
42
  function validateCaps (caps, constraints = {}, opts = {}) {
29
43
 
30
44
  let {skipPresenceConstraint} = opts;
@@ -119,13 +133,20 @@ function findNonPrefixedCaps ({alwaysMatch = {}, firstMatch = []}) {
119
133
  return _.chain([alwaysMatch, ...firstMatch])
120
134
  .reduce((unprefixedCaps, caps) => [
121
135
  ...unprefixedCaps,
122
- ..._(caps).keys().filter((cap) => !cap.includes(':') && !isStandardCap(cap)),
136
+ ...Object.keys(caps).filter((cap) => !cap.includes(':') && !isStandardCap(cap)),
123
137
  ], [])
124
138
  .uniq()
125
139
  .value();
126
140
  }
127
141
 
128
142
  // Parse capabilities (based on https://www.w3.org/TR/webdriver/#processing-capabilities)
143
+ /**
144
+ *
145
+ * @param {W3CCapabilities} caps
146
+ * @param {Constraints} [constraints]
147
+ * @param {boolean} [shouldValidateCaps]
148
+ * @returns
149
+ */
129
150
  function parseCaps (caps, constraints = {}, shouldValidateCaps = true) {
130
151
  // If capabilities request is not an object, return error (#1.1)
131
152
  if (!_.isPlainObject(caps)) {
@@ -182,15 +203,15 @@ function parseCaps (caps, constraints = {}, shouldValidateCaps = true) {
182
203
 
183
204
  // Validate all of the first match capabilities and return an array with only the valid caps (see spec #5)
184
205
  let validationErrors = [];
185
- let validatedFirstMatchCaps = allFirstMatchCaps.map((firstMatchCaps) => {
206
+ /** @type {Capabilities[]} */
207
+ let validatedFirstMatchCaps = _.compact(allFirstMatchCaps.map((firstMatchCaps) => {
186
208
  try {
187
209
  // Validate firstMatch caps
188
210
  return shouldValidateCaps ? validateCaps(firstMatchCaps, filteredConstraints) : firstMatchCaps;
189
211
  } catch (e) {
190
212
  validationErrors.push(e.message);
191
- return null;
192
213
  }
193
- }).filter((caps) => !_.isNull(caps));
214
+ }));
194
215
 
195
216
  // Try to merge requiredCaps with first match capabilities, break once it finds its first match (see spec #6)
196
217
  let matchedCaps = null;
@@ -211,21 +232,28 @@ function parseCaps (caps, constraints = {}, shouldValidateCaps = true) {
211
232
  }
212
233
 
213
234
  // Calls parseCaps and just returns the matchedCaps variable
214
- function processCapabilities (caps, constraints = {}, shouldValidateCaps = true) {
215
- const {matchedCaps, validationErrors} = parseCaps(caps, constraints, shouldValidateCaps);
235
+ /**
236
+ *
237
+ * @param {W3CCapabilities} w3cCaps
238
+ * @param {Constraints} [constraints]
239
+ * @param {boolean} [shouldValidateCaps]
240
+ * @returns {Capabilities}
241
+ */
242
+ function processCapabilities (w3cCaps, constraints = {}, shouldValidateCaps = true) {
243
+ const {matchedCaps, validationErrors} = parseCaps(w3cCaps, constraints, shouldValidateCaps);
216
244
 
217
245
  // If we found an error throw an exception
218
246
  if (!util.hasValue(matchedCaps)) {
219
- if (_.isArray(caps.firstMatch) && caps.firstMatch.length > 1) {
247
+ if (_.isArray(w3cCaps.firstMatch) && w3cCaps.firstMatch.length > 1) {
220
248
  // If there was more than one 'firstMatch' cap, indicate that we couldn't find a matching capabilities set and show all the errors
221
- throw new errors.InvalidArgumentError(`Could not find matching capabilities from ${JSON.stringify(caps)}:\n ${validationErrors.join('\n')}`);
249
+ throw new errors.InvalidArgumentError(`Could not find matching capabilities from ${JSON.stringify(w3cCaps)}:\n ${validationErrors.join('\n')}`);
222
250
  } else {
223
251
  // Otherwise, just show the singular error message
224
252
  throw new errors.InvalidArgumentError(validationErrors[0]);
225
253
  }
226
254
  }
227
255
 
228
- return matchedCaps;
256
+ return matchedCaps ?? {};
229
257
  }
230
258
 
231
259
  /**
@@ -237,7 +265,7 @@ function processCapabilities (caps, constraints = {}, shouldValidateCaps = true)
237
265
  * user-constructed capabilities.
238
266
  *
239
267
  * @param {object} originalCaps - the capabilities to analyze and promote from 'options'
240
- * @return {object} - the capabilities with 'options' promoted if necessary
268
+ * @return {object!} - the capabilities with 'options' promoted if necessary
241
269
  */
242
270
  function promoteAppiumOptions (originalCaps) {
243
271
  const appiumOptions = originalCaps[APPIUM_OPTS_CAP];
@@ -273,3 +301,14 @@ export {
273
301
  parseCaps, processCapabilities, validateCaps, mergeCaps, APPIUM_VENDOR_PREFIX, APPIUM_OPTS_CAP,
274
302
  findNonPrefixedCaps, isStandardCap, stripAppiumPrefixes, promoteAppiumOptions, PREFIXED_APPIUM_OPTS_CAP,
275
303
  };
304
+
305
+ /**
306
+ * @typedef {import('@appium/types').W3CCapabilities} W3CCapabilities
307
+ * @typedef {import('@appium/types').Constraints} Constraints
308
+ * @typedef {import('@appium/types').Capabilities} Capabilities
309
+ */
310
+
311
+ /**
312
+ * @typedef ValidateCapsOpts
313
+ * @property {boolean} [skipPresenceConstraint] - if true, skip the presence constraint
314
+ */