@webex/calling 3.12.0-next.27 → 3.12.0-next.28

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.
@@ -36,7 +36,7 @@ var _registerFixtures = require("./registration/registerFixtures");
36
36
  var _constants2 = require("../common/constants");
37
37
  var _types4 = require("../Metrics/types");
38
38
  var _windowsChromiumIceWarmupUtils = _interopRequireDefault(require("./windowsChromiumIceWarmupUtils"));
39
- function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t5 in e) "default" !== _t5 && {}.hasOwnProperty.call(e, _t5) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t5)) && (i.get || i.set) ? o(f, _t5, i) : f[_t5] = e[_t5]); return f; })(e, t); }
39
+ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t4 in e) "default" !== _t4 && {}.hasOwnProperty.call(e, _t4) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t4)) && (i.get || i.set) ? o(f, _t4, i) : f[_t4] = e[_t4]); return f; })(e, t); }
40
40
  function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
41
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable dot-notation */
42
42
  global.crypto = {
@@ -316,81 +316,80 @@ describe('CallingClient Tests', function () {
316
316
  }
317
317
  }, _callee0);
318
318
  })));
319
-
320
- /**
321
- * Input sdk config to callingClient with serviceData carrying valid value for indicator
322
- * 'contactcenter', but an empty string for domain field in it.
323
- *
324
- * It should throw error and abort execution as domain value is invalid.
325
- *
326
- * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.
327
- */
328
- it('ContactCenter: verify empty invalid service domain', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
329
- var serviceDataObj, _t3;
319
+ it('ContactCenter: uses config domain and does not fetch RTMS domain from catalog', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
320
+ var serviceDataObj;
330
321
  return _regenerator.default.wrap(function (_context1) {
331
322
  while (1) switch (_context1.prev = _context1.next) {
332
323
  case 0:
333
324
  serviceDataObj = {
334
325
  indicator: _types2.ServiceIndicator.CONTACT_CENTER,
335
- domain: ''
326
+ domain: 'test.example.com'
336
327
  };
337
- _context1.prev = 1;
338
- _context1.next = 2;
328
+ webex.internal.services.get = jest.fn();
329
+ _context1.next = 1;
339
330
  return (0, _CallingClient.createClient)(webex, {
340
331
  serviceData: serviceDataObj
341
332
  });
342
- case 2:
333
+ case 1:
343
334
  callingClient = _context1.sent;
344
- _context1.next = 4;
345
- break;
346
- case 3:
347
- _context1.prev = 3;
348
- _t3 = _context1["catch"](1);
349
- expect(_t3.message).toEqual('Invalid service domain.');
350
- case 4:
351
- expect.assertions(1);
352
- case 5:
335
+ expect(callingClient).toBeTruthy();
336
+ expect(webex.internal.services.get).not.toHaveBeenCalled();
337
+ case 2:
353
338
  case "end":
354
339
  return _context1.stop();
355
340
  }
356
- }, _callee1, null, [[1, 3]]);
341
+ }, _callee1);
357
342
  })));
358
343
 
359
344
  /**
360
345
  * Input sdk config to callingClient with serviceData carrying valid value for indicator
361
346
  * 'contactcenter' , and a valid domain type string for domain field in it.
362
- *
363
- * Execution should proceed properly and createRegistration should be called with same serviceData.
364
- *
365
- * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.
366
347
  */
367
- it('ContactCenter: verify valid service domain', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
348
+ it('ContactCenter: fetches RTMS domain from catalog when config domain is empty', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
368
349
  var serviceDataObj;
350
+ return _regenerator.default.wrap(function (_context10) {
351
+ while (1) switch (_context10.prev = _context10.next) {
352
+ case 0:
353
+ serviceDataObj = {
354
+ indicator: _types2.ServiceIndicator.CONTACT_CENTER,
355
+ domain: ''
356
+ };
357
+ webex.internal.services.get = jest.fn().mockReturnValue('https://cc-rtms.example.com/calling/web/rtms');
358
+ _context10.next = 1;
359
+ return (0, _CallingClient.createClient)(webex, {
360
+ serviceData: serviceDataObj
361
+ });
362
+ case 1:
363
+ callingClient = _context10.sent;
364
+ expect(callingClient).toBeTruthy();
365
+ expect(webex.internal.services.get).toHaveBeenCalledWith('wcc-calling-rtms-domain');
366
+ case 2:
367
+ case "end":
368
+ return _context10.stop();
369
+ }
370
+ }, _callee10);
371
+ })));
372
+ it('ContactCenter: init fails when config domain is empty and catalog fetch fails', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11() {
373
+ var serviceDataObj, createLineSpy;
369
374
  return _regenerator.default.wrap(function (_context11) {
370
375
  while (1) switch (_context11.prev = _context11.next) {
371
376
  case 0:
372
377
  serviceDataObj = {
373
378
  indicator: _types2.ServiceIndicator.CONTACT_CENTER,
374
- domain: 'test.example.com'
379
+ domain: ''
375
380
  };
376
- expect(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
377
- return _regenerator.default.wrap(function (_context10) {
378
- while (1) switch (_context10.prev = _context10.next) {
379
- case 0:
380
- _context10.next = 1;
381
- return (0, _CallingClient.createClient)(webex, {
382
- serviceData: serviceDataObj
383
- });
384
- case 1:
385
- callingClient = _context10.sent;
386
- expect(callingClient).toBeTruthy();
387
- case 2:
388
- case "end":
389
- return _context10.stop();
390
- }
391
- }, _callee10);
392
- }))).not.toThrow(Error);
381
+ createLineSpy = jest.spyOn(_CallingClient.CallingClient.prototype, 'createLine');
382
+ webex.internal.services.get = jest.fn(function () {
383
+ throw new Error('catalog unavailable');
384
+ });
385
+ _context11.next = 1;
386
+ return expect((0, _CallingClient.createClient)(webex, {
387
+ serviceData: serviceDataObj
388
+ })).rejects.toThrow('Invalid service domain.');
393
389
  case 1:
390
+ expect(createLineSpy).not.toHaveBeenCalled();
391
+ createLineSpy.mockRestore();
392
+ case 2:
394
393
  case "end":
395
394
  return _context11.stop();
396
395
  }
@@ -566,12 +565,12 @@ describe('CallingClient Tests', function () {
566
565
  }();
567
566
  it.each(mobiusCluster)('%s', /*#__PURE__*/function () {
568
567
  var _ref17 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17(clusterName) {
569
- var _t4;
568
+ var _t3;
570
569
  return _regenerator.default.wrap(function (_context17) {
571
570
  while (1) switch (_context17.prev = _context17.next) {
572
571
  case 0:
573
- _t4 = clusterName;
574
- _context17.next = _t4 === 'mobius-eu-central-1.prod.infra.webex.com' ? 1 : _t4 === 'mobius-us-east-1.int.infra.webex.com' ? 2 : _t4 === 'mobius-eu-central-1.int.infra.webex.com' ? 3 : 4;
572
+ _t3 = clusterName;
573
+ _context17.next = _t3 === 'mobius-eu-central-1.prod.infra.webex.com' ? 1 : _t3 === 'mobius-us-east-1.int.infra.webex.com' ? 2 : _t3 === 'mobius-eu-central-1.int.infra.webex.com' ? 3 : 4;
575
574
  break;
576
575
  case 1:
577
576
  checkCluster(_callingClientFixtures.mockEUServiceHosts, _callingClientFixtures.mockCatalogEU);
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t5","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","fn","mockReturnValue","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_t3","_context1","CONTACT_CENTER","_callee11","_context11","_callee10","_context10","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t4","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","beforeEach","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","mock","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","on","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","primaryMobius","backupMobius","_callee30","_context30","mockClear","_callee31","devices","responsePayload","response","_context31","deviceId","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee32","requestCalls","_context32","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee33","_context33","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAKA,IAAAK,OAAA,GAAAL,OAAA;AASA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AAEA,IAAAU,MAAA,GAAAR,uBAAA,CAAAF,OAAA;AAAyC,IAAAW,KAAA,GAAAD,MAAA;AACzC,IAAAE,YAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AAUA,IAAAc,mBAAA,GAAAd,OAAA;AAEA,IAAAe,sBAAA,GAAAf,OAAA;AAeA,IAAAgB,KAAA,GAAAR,sBAAA,CAAAR,OAAA;AAEA,IAAAiB,iBAAA,GAAAjB,OAAA;AAGA,IAAAkB,WAAA,GAAAlB,OAAA;AACA,IAAAmB,OAAA,GAAAnB,OAAA;AACA,IAAAoB,8BAAA,GAAAZ,sBAAA,CAAAR,OAAA;AAAuE,SAAAE,wBAAAmB,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAArB,uBAAA,YAAAA,wBAAAmB,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,GAAA,IAAAf,CAAA,gBAAAe,GAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,GAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,GAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,GAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,GAAA,IAAAf,CAAA,CAAAe,GAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAoB,aAAA,CAAArB,CAAA,OAAAsB,6BAAA,QAAAhB,CAAA,GAAAgB,6BAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAgB,gCAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,OAAA8B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,CAAAtB,OAAA,EAAAV,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAA8B,iCAAA,GAAAC,wBAAA,CAAAlC,CAAA,EAAAiC,iCAAA,CAAAhC,CAAA,KAAAmB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,GAAA8B,OAAA,WAAA5B,CAAA,IAAAe,sBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAgB,gCAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA,IAzCvE;AA2CAmC,MAAM,CAACC,MAAM,GAAG;EACdC,UAAU,EAAE,SAAZA,UAAUA,CAAA;IAAA,OAAQ,sCAAsC;EAAA;AAC1D,CAAsB;AAEtBC,IAAI,CAACC,KAAK,CAACjD,KAAK,EAAE,YAAY,CAAC,CAACkD,iBAAiB,CAACC,SAAS,CAAC;AAE5DC,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EACpC;;EAEA,IAAMC,cAAc,GAAGL,IAAI,CAACC,KAAK,CAACjD,KAAK,EAAE,2BAA2B,CAAC;EACrE,IAAMsD,YAAY,GAAGN,IAAI,CAACC,KAAK,CAAC3D,KAAK,EAAE,WAAW,CAAC;EACnD,IAAMiE,KAAK,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EACjCD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,GAAGC,oCAAa;EACvDJ,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAACC,yCAAkB,CAAC;EACzF,IAAMC,uBAAuB,GAAGC,wBAAgB,CAACC,OAAO;EACxD,IAAMC,WAAW,GAAG,IAAAC,2BAAc,EAACb,KAAK,EAAES,uBAAuB,CAAC;EAElE,IAAMK,OAAO,GAAGrB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,MAAM,CAAC;EACvC,IAAMC,MAAM,GAAGvB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,KAAK,CAAC;EACrC,IAAME,OAAO,GAAGxB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,MAAM,CAAC;EAEvC,IAAMG,uBAAuB,GAAGC,OAAO,CAACC,QAAQ;EAChD,SAASC,aAAaA,CAAA,EAAG;IACvB,OAAO,IAAAC,QAAA,CAAAzD,OAAA,CAAY,UAAC0D,OAAO,EAAK;MAC9BL,uBAAuB,CAACK,OAAO,CAAC;IAClC,CAAC,CAAC;EACJ;EAEA1B,QAAQ,CAAC,4DAA4D,EAAE,YAAM;IAC3E2B,QAAQ,CAAC,YAAM;MACbZ,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCzB,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAC/C,uDAAuD;MACzDH,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,GAAGC,oCAAa;IACzD,CAAC,CAAC;IAEFsB,EAAE,CAAC,oEAAoE,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAC,QAAA;MAAA,IAAAC,aAAA;MAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YACvEnC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACiC,YAAY,GAAGhC,oCAAa;YACpDJ,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACkC,YAAY,CAACC,MAAM,GAAG,aAAa;YAACL,QAAA,CAAAE,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAE,QAAA,CAAAW,IAAA;YACnBC,MAAM,CAAC9C,YAAY,CAAC,CAAC+C,qBAAqB,CAAC,CAAC,CAAC;YAC7CD,MAAM,CAACd,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACgB,aAAa,CAACvC,yCAAkB,CAAC;UAAC;UAAA;YAAA,OAAAyB,QAAA,CAAAe,IAAA;QAAA;MAAA,GAAAlB,OAAA;IAAA,CAC3E,GAAC;IAEFJ,EAAE,CAAC,0DAA0D,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAoB,SAAA;MAAA,IAAAlB,aAAA;MAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAkB,SAAA;QAAA,kBAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;UAAA;YAC7DnC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACiC,YAAY,GAAGe,oCAAa;YACpDnD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAAC6C,yCAAkB,CAAC;YACzFpD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAC/C,yDAAyD;YAAC+C,SAAA,CAAAf,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAmB,SAAA,CAAAN,IAAA;YAEnBC,MAAM,CAACd,aAAa,CAAC,YAAY,CAAC,CAAC,CAACsB,IAAI,CACtC,yDACF,CAAC;YACDR,MAAM,CAACd,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACgB,aAAa,CAACK,yCAAkB,CAAC;UAAC;UAAA;YAAA,OAAAF,SAAA,CAAAF,IAAA;QAAA;MAAA,GAAAC,QAAA;IAAA,CAC3E,GAAC;EACJ,CAAC,CAAC;EAEFpD,QAAQ,CAAC,mBAAmB,EAAE,YAAM;IAClC,IAAIkC,aAAyC;IAE7CuB,SAAS,CAAC,YAAM;MACd1C,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;IAC3B,CAAC,CAAC;;IAEF;AACJ;AACA;AACA;IACI8B,EAAE,CAAC,2DAA2D,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA0B,SAAA;MAAA,OAAA3B,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAwB,SAAA;QAAA,kBAAAA,SAAA,CAAAtB,IAAA,GAAAsB,SAAA,CAAArB,IAAA;UAAA;YAC9DU,MAAM,kBAAAlB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA4B,SAAA;cAAA,OAAA7B,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA0B,SAAA;gBAAA,kBAAAA,SAAA,CAAAxB,IAAA,GAAAwB,SAAA,CAAAvB,IAAA;kBAAA;oBAAAuB,SAAA,CAAAvB,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACvC,KAAK,CAAC;kBAAA;oBAAzC+B,aAAa,GAAA2B,SAAA,CAAAd,IAAA;oBACbC,MAAM,CAACd,aAAa,CAAC,CAAC4B,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAD,SAAA,CAAAV,IAAA;gBAAA;cAAA,GAAAS,QAAA;YAAA,CACpC,GAAC,CAACG,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAN,SAAA,CAAAR,IAAA;QAAA;MAAA,GAAAO,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;IACI7B,EAAE,CAAC,sDAAsD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAkC,SAAA;MAAA,IAAAC,cAAA;MAAA,OAAApC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAiC,SAAA;QAAA,kBAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;UAAA;YACzD;YACM6B,cAAmB,GAAG;cAACE,SAAS,EAAE,EAAE;cAAEC,MAAM,EAAE;YAAE,CAAC;YAEvDtB,MAAM,kBAAAlB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAuC,SAAA;cAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAqC,SAAA;gBAAA,kBAAAA,SAAA,CAAAnC,IAAA,GAAAmC,SAAA,CAAAlC,IAAA;kBAAA;oBAAAkC,SAAA,CAAAlC,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACvC,KAAK,EAAE;sBAACsE,WAAW,EAAEN;oBAAc,CAAC,CAAC;kBAAA;oBAAxEjC,aAAa,GAAAsC,SAAA,CAAAzB,IAAA;oBACbC,MAAM,CAACd,aAAa,CAAC,CAAC4B,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAU,SAAA,CAAArB,IAAA;gBAAA;cAAA,GAAAoB,QAAA;YAAA,CACpC,GAAC,CAACR,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAG,SAAA,CAAAjB,IAAA;QAAA;MAAA,GAAAe,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACIrC,EAAE,CAAC,gDAAgD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA0C,SAAA;MAAA,IAAAP,cAAA,EAAAQ,EAAA;MAAA,OAAA5C,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAyC,SAAA;QAAA,kBAAAA,SAAA,CAAAvC,IAAA,GAAAuC,SAAA,CAAAtC,IAAA;UAAA;YACnD;YACM6B,cAAmB,GAAG;cAACE,SAAS,EAAE,MAAM;cAAEC,MAAM,EAAE;YAAkB,CAAC;YAAAM,SAAA,CAAAvC,IAAA;YAAAuC,SAAA,CAAAtC,IAAA;YAAA,OAGnD,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACsE,WAAW,EAAEN;YAAc,CAAC,CAAC;UAAA;YAAxEjC,aAAa,GAAA0C,SAAA,CAAA7B,IAAA;YAAA6B,SAAA,CAAAtC,IAAA;YAAA;UAAA;YAAAsC,SAAA,CAAAvC,IAAA;YAAAsC,EAAA,GAAAC,SAAA;YAEb5B,MAAM,CAAC2B,EAAA,CAAEE,OAAO,CAAC,CAACC,OAAO,CACvB,wFACF,CAAC;UAAC;YAEJ9B,MAAM,CAAC+B,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAH,SAAA,CAAAzB,IAAA;QAAA;MAAA,GAAAuB,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI7C,EAAE,CAAC,wCAAwC,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAgD,SAAA;MAAA,IAAAb,cAAA,EAAAc,GAAA;MAAA,OAAAlD,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA+C,SAAA;QAAA,kBAAAA,SAAA,CAAA7C,IAAA,GAAA6C,SAAA,CAAA5C,IAAA;UAAA;YACrC6B,cAAc,GAAG;cAACE,SAAS,EAAExD,wBAAgB,CAACC,OAAO;cAAEwD,MAAM,EAAE;YAAM,CAAC;YAAAY,SAAA,CAAA7C,IAAA;YAAA6C,SAAA,CAAA5C,IAAA;YAAA,OAGpD,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACsE,WAAW,EAAEN;YAAc,CAAC,CAAC;UAAA;YAAxEjC,aAAa,GAAAgD,SAAA,CAAAnC,IAAA;YAAAmC,SAAA,CAAA5C,IAAA;YAAA;UAAA;YAAA4C,SAAA,CAAA7C,IAAA;YAAA4C,GAAA,GAAAC,SAAA;YAEblC,MAAM,CAACiC,GAAA,CAAEJ,OAAO,CAAC,CAACC,OAAO,CAAC,yBAAyB,CAAC;UAAC;YAEvD9B,MAAM,CAAC+B,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAG,SAAA,CAAA/B,IAAA;QAAA;MAAA,GAAA6B,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACInD,EAAE,CAAC,4CAA4C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAmD,SAAA;MAAA,IAAAhB,cAAA;MAAA,OAAApC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAiD,SAAA;QAAA,kBAAAA,SAAA,CAAA/C,IAAA,GAAA+C,SAAA,CAAA9C,IAAA;UAAA;YACzC6B,cAAc,GAAG;cAACE,SAAS,EAAExD,wBAAgB,CAACC,OAAO;cAAEwD,MAAM,EAAE;YAAE,CAAC;YAExEtB,MAAM,kBAAAlB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAqD,SAAA;cAAA,OAAAtD,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAmD,SAAA;gBAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;kBAAA;oBAAAgD,SAAA,CAAAhD,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACvC,KAAK,EAAE;sBAACsE,WAAW,EAAEN;oBAAc,CAAC,CAAC;kBAAA;oBAAxEjC,aAAa,GAAAoD,SAAA,CAAAvC,IAAA;oBACbC,MAAM,CAACd,aAAa,CAAC,CAAC4B,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAwB,SAAA,CAAAnC,IAAA;gBAAA;cAAA,GAAAkC,QAAA;YAAA,CACpC,GAAC,CAACtB,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAmB,SAAA,CAAAjC,IAAA;QAAA;MAAA,GAAAgC,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACItD,EAAE,CAAC,oDAAoD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAuD,SAAA;MAAA,IAAApB,cAAA,EAAAqB,GAAA;MAAA,OAAAzD,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAsD,SAAA;QAAA,kBAAAA,SAAA,CAAApD,IAAA,GAAAoD,SAAA,CAAAnD,IAAA;UAAA;YACjD6B,cAAc,GAAG;cAACE,SAAS,EAAExD,wBAAgB,CAAC6E,cAAc;cAAEpB,MAAM,EAAE;YAAE,CAAC;YAAAmB,SAAA,CAAApD,IAAA;YAAAoD,SAAA,CAAAnD,IAAA;YAAA,OAGvD,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACsE,WAAW,EAAEN;YAAc,CAAC,CAAC;UAAA;YAAxEjC,aAAa,GAAAuD,SAAA,CAAA1C,IAAA;YAAA0C,SAAA,CAAAnD,IAAA;YAAA;UAAA;YAAAmD,SAAA,CAAApD,IAAA;YAAAmD,GAAA,GAAAC,SAAA;YAEbzC,MAAM,CAACwC,GAAA,CAAEX,OAAO,CAAC,CAACC,OAAO,CAAC,yBAAyB,CAAC;UAAC;YAEvD9B,MAAM,CAAC+B,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAU,SAAA,CAAAtC,IAAA;QAAA;MAAA,GAAAoC,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI1D,EAAE,CAAC,4CAA4C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA2D,UAAA;MAAA,IAAAxB,cAAA;MAAA,OAAApC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAyD,UAAA;QAAA,kBAAAA,UAAA,CAAAvD,IAAA,GAAAuD,UAAA,CAAAtD,IAAA;UAAA;YACzC6B,cAAc,GAAG;cACrBE,SAAS,EAAExD,wBAAgB,CAAC6E,cAAc;cAC1CpB,MAAM,EAAE;YACV,CAAC;YAEDtB,MAAM,kBAAAlB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA6D,UAAA;cAAA,OAAA9D,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA2D,UAAA;gBAAA,kBAAAA,UAAA,CAAAzD,IAAA,GAAAyD,UAAA,CAAAxD,IAAA;kBAAA;oBAAAwD,UAAA,CAAAxD,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACvC,KAAK,EAAE;sBAACsE,WAAW,EAAEN;oBAAc,CAAC,CAAC;kBAAA;oBAAxEjC,aAAa,GAAA4D,UAAA,CAAA/C,IAAA;oBACbC,MAAM,CAACd,aAAa,CAAC,CAAC4B,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAgC,UAAA,CAAA3C,IAAA;gBAAA;cAAA,GAAA0C,SAAA;YAAA,CACpC,GAAC,CAAC9B,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAA2B,UAAA,CAAAzC,IAAA;QAAA;MAAA,GAAAwC,SAAA;IAAA,CACvB,GAAC;IAEF9D,EAAE,CAAC,uBAAuB,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA+D,UAAA;MAAA,OAAAhE,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA6D,UAAA;QAAA,kBAAAA,UAAA,CAAA3D,IAAA,GAAA2D,UAAA,CAAA1D,IAAA;UAAA;YAAA0D,UAAA,CAAA1D,IAAA;YAAA,OACJ,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAA8D,UAAA,CAAAjD,IAAA;YACbC,MAAM,CAACd,aAAa,CAAC,CAAC4B,UAAU,CAAC,CAAC;YAClCd,MAAM,CAACd,aAAa,CAAC+D,eAAe,CAAC,CAACnC,UAAU,CAAC,CAAC;YAClDd,MAAM,CAACd,aAAa,CAAC+D,eAAe,CAAC,CAAC,CAAC,CAACnB,OAAO,CAACjC,aAAM,CAACC,IAAI,CAAC;UAAC;UAAA;YAAA,OAAAkD,UAAA,CAAA7C,IAAA;QAAA;MAAA,GAAA4C,SAAA;IAAA,CAC9D,GAAC;EACJ,CAAC,CAAC;EAEF/F,QAAQ,CAAC,+BAA+B,EAAE,YAAM;IAC9C,IAAIkC,aAAa;IAEjBuB,SAAS,CAAC,YAAM;MACd7D,IAAI,CAACsG,cAAc,CAAC,CAAC;MACrBtG,IAAI,CAACuG,aAAa,CAAC,CAAC;MACpBjE,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACwG,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFvE,EAAE,CAAC,+CAA+C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAqE,UAAA;MAAA,OAAAtE,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAmE,UAAA;QAAA,kBAAAA,UAAA,CAAAjE,IAAA,GAAAiE,UAAA,CAAAhE,IAAA;UAAA;YAClDnC,KAAK,CAACoG,OAAO,CAACC,qBAAqB,CAACC,oCAAa,CAAC,CAACD,qBAAqB,CAACE,uCAAgB,CAAC;YAACJ,UAAA,CAAAhE,IAAA;YAAA,OAErE,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAoE,UAAA,CAAAvD,IAAA;YAEbC,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACI,eAAe,CAAC,CAAC,CAAC;YACxC3D,MAAM,CAACd,aAAa,CAAC0E,iBAAiB,CAAC,CAAC9B,OAAO,CAAC,CAAC+B,iCAAU,CAAC,CAAC;YAC7D7D,MAAM,CAAC/C,cAAc,CAAC,CAAC8D,GAAG,CAAC+C,UAAU,CAAC,CAAC;YAEvC9D,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAE;cACrCC,MAAM,EAAE,KAAK;cACbC,GAAG,KAAAC,MAAA,CAAKC,wBAAa,CAAE;cACvBC,aAAa,EAAE,KAAK;cACpBC,OAAO,MAAA/H,gBAAA,CAAAtB,OAAA,MACJsJ,2BAAgB,EAAG,IAAI;YAE5B,CAAC,CAAC;YAEFtE,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAA9H,aAAA,CAAAA,aAAA;cACnC+H,MAAM,EAAE;YAAK,GACV,IAAAO,gCAAsB,EAAC,CAAC;cAC3BN,GAAG,KAAAC,MAAA,CAAKhF,aAAa,CAAC,YAAY,CAAC,EAAAgF,MAAA,CAAGM,uBAAY,kBAAAN,MAAA,CAAeO,iCAAU,CAACC,YAAY,mBAAAR,MAAA,CAAgBO,iCAAU,CAACE,WAAW;YAAE,EACjI,CAAC;UAAC;UAAA;YAAA,OAAArB,UAAA,CAAAnD,IAAA;QAAA;MAAA,GAAAkD,SAAA;IAAA,CACJ,GAAC;IAEFxE,EAAE,CAAC,6FAA6F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA4F,UAAA;MAAA,IAAAC,cAAA;MAAA,OAAA9F,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA2F,UAAA;QAAA,kBAAAA,UAAA,CAAAzF,IAAA,GAAAyF,UAAA,CAAAxF,IAAA;UAAA;YAC1FuF,cAAc,GAAG;cACrBE,UAAU,EAAE;YACd,CAAC;YAED5H,KAAK,CAACoG,OAAO,CAACC,qBAAqB,CAACC,oCAAa,CAAC,CAACuB,qBAAqB,CAACH,cAAc,CAAC;YAACC,UAAA,CAAAxF,IAAA;YAAA,OAEnE,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAA4F,UAAA,CAAA/E,IAAA;YAEbC,MAAM,CAAC/C,cAAc,CAAC,CAACgI,cAAc,CAACJ,cAAc,EAAE7E,MAAM,CAACkF,QAAQ,CAAC,CAAC,EAAE;cACvEC,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CAAC,CAAC;YACFhE,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACI,eAAe,CAAC,CAAC,CAAC;YAExC3D,MAAM,CAACd,aAAa,CAAC0E,iBAAiB,CAAC,CAAC9B,OAAO,CAAC,IAAAoC,MAAA,CAC3ChF,aAAa,CAAC,YAAY,CAAC,EAAAgF,MAAA,CAAGM,uBAAY,EAC9C,CAAC;YAEFxE,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAE;cACrCC,MAAM,EAAE,KAAK;cACbC,GAAG,KAAAC,MAAA,CAAKC,wBAAa,CAAE;cACvBC,aAAa,EAAE,KAAK;cACpBC,OAAO,MAAA/H,gBAAA,CAAAtB,OAAA,MACJsJ,2BAAgB,EAAG,IAAI;YAE5B,CAAC,CAAC;YAEFtE,MAAM,CAAC5B,OAAO,CAAC,CAAC6G,cAAc,+GAE5BjF,MAAM,CAACqF,gBAAgB,CAAC;cACtBF,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CAAC,CACH,CAAC;UAAC;UAAA;YAAA,OAAAc,UAAA,CAAA3E,IAAA;QAAA;MAAA,GAAAyE,SAAA;IAAA,CACH,GAAC;IAEF/F,EAAE,CAAC,iGAAiG,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAsG,UAAA;MAAA,OAAAvG,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAoG,UAAA;QAAA,kBAAAA,UAAA,CAAAlG,IAAA,GAAAkG,UAAA,CAAAjG,IAAA;UAAA;YACpGrB,OAAO,CAACuH,SAAS,CAAC,CAAC;YACnBrI,KAAK,CAACoG,OAAO,CAACC,qBAAqB,CAACE,uCAAgB,CAAC;YAAC6B,UAAA,CAAAjG,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cACxCsI,SAAS,EAAE;gBACTC,MAAM,EAAE,cAAc;gBACtBC,OAAO,EAAE;cACX,CAAC;cACDhG,MAAM,EAAE;gBACNC,KAAK,EAAEC,aAAM,CAACC;cAChB;YACF,CAAC,CAAC;UAAA;YARFZ,aAAa,GAAAqG,UAAA,CAAAxF,IAAA;YAUbC,MAAM,CAACd,aAAa,CAAC0E,iBAAiB,CAAC,CAAC9B,OAAO,CAAC,CAAC+B,iCAAU,CAAC,CAAC;YAE7D7D,MAAM,CAAC/B,OAAO,CAAC,CAAC2H,oBAAoB,CAACC,gCAAoB,EAAE;cACzDV,IAAI,EAAE,eAAe;cACrBnB,MAAM,EAAE;YACV,CAAC,CAAC;YAEFhE,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACuC,kBAAkB,CAAA7J,aAAA,CAAAA,aAAA,KACnC,IAAAsI,gCAAsB,EAAC,CAAC;cAC3BN,GAAG,KAAAC,MAAA,CAAKhF,aAAa,CAAC,YAAY,CAAC,EAAAgF,MAAA,CAAGM,uBAAY,kBAAAN,MAAA,CAAeO,iCAAU,CAACC,YAAY,mBAAAR,MAAA,CAAgBO,iCAAU,CAACE,WAAW,CAAE;cAChIX,MAAM,EAAE;YAAK,EACd,CAAC;YAEFhE,MAAM,CAAC/C,cAAc,CAAC,CAAC8D,GAAG,CAACgF,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAR,UAAA,CAAApF,IAAA;QAAA;MAAA,GAAAmF,SAAA;IAAA,CAC/C,GAAC;EACJ,CAAC,CAAC;EAEFtI,QAAQ,CAAC,mDAAmD,EAAE,YAAM;IAClE,IAAMgJ,aAAa,GAAG,CACpB,0CAA0C,EAC1C,sCAAsC,EACtC,yCAAyC,CAC1C;IAED,IAAMC,YAAY;MAAA,IAAAC,MAAA,OAAApH,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAG,SAAAmH,UACnBC,gBAA+B,EAC/BC,WAA0C;QAAA,IAAAnH,aAAA;QAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAmH,UAAA;UAAA,kBAAAA,UAAA,CAAAjH,IAAA,GAAAiH,UAAA,CAAAhH,IAAA;YAAA;cAE1CnC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACiC,YAAY,GAAG8G,WAAW;cAClDlJ,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAAC0I,gBAAgB,CAAC;cAACE,UAAA,CAAAhH,IAAA;cAAA,OAC5D,IAAAI,2BAAY,EAACvC,KAAK,EAAE;gBAACwC,MAAM,EAAE;kBAACC,KAAK,EAAEC,aAAM,CAACC;gBAAI;cAAC,CAAC,CAAC;YAAA;cAAzEZ,aAAa,GAAAoH,UAAA,CAAAvG,IAAA;cAEnBC,MAAM,CAACd,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACgB,aAAa,CAACkG,gBAAgB,CAAC;YAAC;YAAA;cAAA,OAAAE,UAAA,CAAAnG,IAAA;UAAA;QAAA,GAAAgG,SAAA;MAAA,CACzE;MAAA,gBATKF,YAAYA,CAAAM,EAAA,EAAAC,GAAA;QAAA,OAAAN,MAAA,CAAAlK,KAAA,OAAAE,SAAA;MAAA;IAAA,GASjB;IAED2C,EAAE,CAAC4H,IAAI,CAACT,aAAa,CAAC,CAAC,IAAI;MAAA,IAAAU,MAAA,OAAA5H,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA2H,UAAOC,WAAW;QAAA,IAAAC,GAAA;QAAA,OAAA9H,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA2H,UAAA;UAAA,kBAAAA,UAAA,CAAAzH,IAAA,GAAAyH,UAAA,CAAAxH,IAAA;YAAA;cAAAuH,GAAA,GACrCD,WAAW;cAAAE,UAAA,CAAAxH,IAAA,GAAAuH,GAAA,KACZ,0CAA0C,OAAAA,GAAA,KAG1C,sCAAsC,OAAAA,GAAA,KAGtC,yCAAyC;cAAA;YAAA;cAL5CZ,YAAY,CAAC1F,yCAAkB,EAAED,oCAAa,CAAC;cAAC,OAAAwG,UAAA,CAAAC,MAAA;YAAA;cAGhDd,YAAY,CAACe,0CAAmB,EAAEC,uCAAgB,CAAC;cAAC,OAAAH,UAAA,CAAAC,MAAA;YAAA;cAGpDd,YAAY,CAACiB,4CAAqB,EAAEC,uCAAgB,CAAC;cAAC,OAAAL,UAAA,CAAAC,MAAA;YAAA;cAAA,OAAAD,UAAA,CAAAC,MAAA;YAAA;YAAA;cAAA,OAAAD,UAAA,CAAA3G,IAAA;UAAA;QAAA,GAAAwG,SAAA;MAAA,CAK3D;MAAA,iBAAAS,GAAA;QAAA,OAAAV,MAAA,CAAA1K,KAAA,OAAAE,SAAA;MAAA;IAAA,IAAC;EACJ,CAAC,CAAC;EAEFc,QAAQ,CAAC,qBAAqB,EAAE,YAAM;IACpC,IAAIkC,aAAa;IACjB,IAAImI,IAAI;IAERC,UAAU,kBAAAxI,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAuI,UAAA;MAAA,OAAAxI,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAqI,UAAA;QAAA,kBAAAA,UAAA,CAAAnI,IAAA,GAAAmI,UAAA,CAAAlI,IAAA;UAAA;YAAAkI,UAAA,CAAAlI,IAAA;YAAA,OACa,IAAAI,2BAAY,EAACvC,KAAK,CAAC;UAAA;YAAzC+B,aAAa,GAAAsI,UAAA,CAAAzH,IAAA;YACbsH,IAAI,GAAG,IAAAI,OAAA,CAAAzM,OAAA,EAAckE,aAAa,CAACwI,QAAQ,CAAC,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAF,UAAA,CAAArH,IAAA;QAAA;MAAA,GAAAoH,SAAA;IAAA,CACjD,GAAC;IAEF9G,SAAS,CAAC,YAAM;MACd7D,IAAI,CAACsG,cAAc,CAAC,CAAC;MACrBtG,IAAI,CAACuG,aAAa,CAAC,CAAC;MACpBjE,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACwG,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFvE,EAAE,CAAC,uCAAuC,EAAE,YAAM;MAChDmB,MAAM,CAACd,aAAa,CAACwI,QAAQ,CAAC,CAAC5G,UAAU,CAAC,CAAC;MAC3Cd,MAAM,CAACqH,IAAI,CAAC,CAACvG,UAAU,CAAC,CAAC;MACzBd,MAAM,CAAC,IAAA2H,KAAA,CAAA3M,OAAA,EAAYkE,aAAa,CAACwI,QAAQ,CAAC,CAACvL,MAAM,CAAC,CAAC2F,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEFjD,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnCmB,MAAM,CAACd,aAAa,CAAC0I,QAAQ,CAAC,CAAC9G,UAAU,CAAC,CAAC;MAC3Cd,MAAM,CAACd,aAAa,CAAC0I,QAAQ,CAAC,CAAC,CAAC,CAAC9F,OAAO,CAAC5C,aAAa,CAACwI,QAAQ,CAAC;IAClE,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF1K,QAAQ,CAAC,yCAAyC,EAAE,YAAM;IACxD,IAAIkC,aAA6B;IACjC,IAAImI,IAAI;IACR,IAAIQ,GAAG;IACP,IAAIC,cAAgC;IACpC,IAAIC,QAAQ;IACZ,IAAIC,UAAU;IACd,IAAIC,kBAAkB;IACtB,IAAIC,WAAW;IACf,IAAIC,SAAS;IAEbb,UAAU,kBAAAxI,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAoJ,UAAA;MAAA,OAAArJ,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAkJ,UAAA;QAAA,kBAAAA,UAAA,CAAAhJ,IAAA,GAAAgJ,UAAA,CAAA/I,IAAA;UAAA;YACT1C,IAAI,CAAC0L,aAAa,CAAC,CAAC;YACpBnL,KAAK,CAACoG,OAAO,CACVC,qBAAqB,CAACC,oCAAa,CAAC,CACpCD,qBAAqB,CAACE,uCAAgB,CAAC,CACvCF,qBAAqB,CAAC+E,0CAAmB,CAAC;YAE7CT,cAAc,GAAGlL,IAAI,CAACC,KAAK,CAAC2L,MAAM,EAAE,kBAAkB,CAAC;YAACH,UAAA,CAAA/I,IAAA;YAAA,OAClC,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAmJ,UAAA,CAAAtI,IAAA;YACbsH,IAAI,GAAG,IAAAI,OAAA,CAAAzM,OAAA,EAAckE,aAAa,CAACwI,QAAQ,CAAC,CAAC,CAAC,CAAU;YACxDG,GAAG,GAAGR,IAAI,CAACoB,YAAY;YAACJ,UAAA,CAAA/I,IAAA;YAAA,OAClB+H,IAAI,CAACqB,QAAQ,CAAC,CAAC;UAAA;YAErBX,QAAQ,GAAGnL,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,YAAY,CAAC;YACxCG,UAAU,GAAGpL,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,6BAA6B,CAAC;YAC3DI,kBAAkB,GAAGrL,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,qBAAqB,CAAC;YAC3DK,WAAW,GAAGtL,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,gCAAgC,CAAC;YAC/DM,SAAS,GAAGvL,IAAI,CAACC,KAAK,CAACqC,aAAa,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC;UAAC;UAAA;YAAA,OAAAmJ,UAAA,CAAAlI,IAAA;QAAA;MAAA,GAAAiI,SAAA;IAAA,CACnF,GAAC;IAEF3H,SAAS,CAAC,YAAM;MACd7D,IAAI,CAACsG,cAAc,CAAC,CAAC;MACrBtG,IAAI,CAACuG,aAAa,CAAC,CAAC;MACpBjE,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCM,aAAa,CAAC,aAAa,CAAC,CAACyJ,cAAc,GAAG,CAAC,CAAC;MAChD5K,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACwG,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFvE,EAAE,CAAC,0FAA0F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA4J,UAAA;MAAA,IAAAC,CAAA,EAAAC,iBAAA,EAAAC,SAAA;MAAA,OAAAhK,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA6J,UAAA;QAAA,kBAAAA,UAAA,CAAA3J,IAAA,GAAA2J,UAAA,CAAA1J,IAAA;UAAA;YACvFuJ,CAAC,GAAGpM,MAAM;YAChBoM,CAAC,CAACI,KAAK,GAAGrM,IAAI,CAACa,EAAE,CAAC,CAAC,CAACuH,qBAAqB,CAAC,IAAI/D,KAAK,CAAC,cAAc,CAAC,CAAC;YAE9D6H,iBAAiB,GAAGlM,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,qBAAqB,CAAC;YAE1DkB,SAAS,GAAGjB,cAAc,CAACoB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAH,UAAA,CAAA1J,IAAA;YAAA,OAC3CyJ,SAAS,CAAC,CAAC;UAAA;YAEjB/I,MAAM,CAAC5B,OAAO,CAAC,CAACwH,oBAAoB,CAClC5F,MAAM,CAACoJ,gBAAgB,CAAC,mCAAmC,CAAC,EAC5D;cACEjE,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CACF,CAAC;YACDhE,MAAM,CAACd,aAAa,CAAC,eAAe,CAAC,CAAC,CAACsB,IAAI,CAAC,IAAI,CAAC;YACjDR,MAAM,CAAC8I,iBAAiB,CAAC,CAAC/C,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAiD,UAAA,CAAA7I,IAAA;QAAA;MAAA,GAAAyI,SAAA;IAAA,CAC9C,GAAC;IAEF/J,EAAE,CAAC,2EAA2E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAqK,UAAA;MAAA,IAAAR,CAAA,EAAAC,iBAAA,EAAAC,SAAA;MAAA,OAAAhK,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAmK,UAAA;QAAA,kBAAAA,UAAA,CAAAjK,IAAA,GAAAiK,UAAA,CAAAhK,IAAA;UAAA;YACxEuJ,CAAC,GAAGpM,MAAM;YAChBoM,CAAC,CAACI,KAAK,GAAGrM,IAAI,CAACa,EAAE,CAAC,CAAC,CAAC+F,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAEvCsF,iBAAiB,GAAGlM,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,qBAAqB,CAAC;YAE1DkB,SAAS,GAAGjB,cAAc,CAACoB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAG,UAAA,CAAAhK,IAAA;YAAA,OAC3CyJ,SAAS,CAAC,CAAC;UAAA;YAEjB/I,MAAM,CAAC6I,CAAC,CAACI,KAAK,CAAC,CAACrD,oBAAoB,CAClC,qCAAqC,EACrC5F,MAAM,CAACuJ,GAAG,CAACnN,MAAM,CACnB,CAAC;YACD4D,MAAM,CAACd,aAAa,CAAC,eAAe,CAAC,CAAC,CAACsB,IAAI,CAAC,KAAK,CAAC;YAClDR,MAAM,CAAC8I,iBAAiB,CAAC,CAAC/H,GAAG,CAACgF,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAuD,UAAA,CAAAnJ,IAAA;QAAA;MAAA,GAAAkJ,SAAA;IAAA,CAClD,GAAC;IAEFxK,EAAE,CAAC,wDAAwD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAwK,UAAA;MAAA,IAAAC,QAAA;MAAA,OAAA1K,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAuK,UAAA;QAAA,kBAAAA,UAAA,CAAArK,IAAA,GAAAqK,UAAA,CAAApK,IAAA;UAAA;YACrDmK,QAAQ,GAAG3B,cAAc,CAACoB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAO,UAAA,CAAApK,IAAA;YAAA,OAC1CmK,QAAQ,CAAC,CAAC;UAAA;YAEhBzJ,MAAM,CAACd,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC4C,OAAO,CAAC9B,MAAM,CAACuJ,GAAG,CAACI,MAAM,CAAC,CAAC;YACvE3J,MAAM,CAAC/B,OAAO,CAAC,CAAC2H,oBAAoB,CAACC,gCAAoB,EAAE;cACzDV,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA0F,UAAA,CAAAvJ,IAAA;QAAA;MAAA,GAAAqJ,SAAA;IAAA,CACJ,GAAC;IAEF3K,EAAE,CAAC,oDAAoD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA4K,UAAA;MAAA,IAAAC,gBAAA;MAAA,OAAA9K,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA2K,UAAA;QAAA,kBAAAA,UAAA,CAAAzK,IAAA,GAAAyK,UAAA,CAAAxK,IAAA;UAAA;YACjDuK,gBAAgB,GAAG1M,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE,CAACd,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAW,UAAA,CAAAxK,IAAA;YAAA,OAC7DuK,gBAAgB,CAAC,CAAC;UAAA;YAExB7J,MAAM,CAAC5B,OAAO,CAAC,CAACwH,oBAAoB,CAClC5F,MAAM,CAACoJ,gBAAgB,CAAC,+CAA+C,CAAC,EACxE;cACEjE,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CACF,CAAC;YACDhE,MAAM,CAACd,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC4C,OAAO,CAAC9B,MAAM,CAACuJ,GAAG,CAACI,MAAM,CAAC,CAAC;YACzE3J,MAAM,CAACmI,SAAS,CAAC,CAACvC,oBAAoB,CACpCqE,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACC,YAAY,EAC9BC,mBAAW,CAACC,UAAU,EACtBtK,MAAM,CAACuJ,GAAG,CAACI,MAAM,CAAC,EAClB,EACF,CAAC;UAAC;UAAA;YAAA,OAAAG,UAAA,CAAA3J,IAAA;QAAA;MAAA,GAAAyJ,SAAA;IAAA,CACH,GAAC;IAEF/K,EAAE,CAAC,0FAA0F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAuL,UAAA;MAAA,IAAAC,0BAAA,EAAAC,eAAA;MAAA,OAAA1L,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAuL,UAAA;QAAA,kBAAAA,UAAA,CAAArL,IAAA,GAAAqL,UAAA,CAAApL,IAAA;UAAA;YACvFkL,0BAA0B,GAAG5N,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,6BAA6B,CAAC;YAEjF3I,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YACrCA,aAAa,CAAC,sBAAsB,CAAC,GAAG,0BAA0B;YAClEA,aAAa,CAAC,oBAAoB,CAAC,GAAG,0BAA0B;YAE1DuL,eAAe,GAAGtN,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE,CAACd,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAuB,UAAA,CAAApL,IAAA;YAAA,OAC5DmL,eAAe,CAAC,CAAC;UAAA;YAEvB;YACA7N,IAAI,CAAC+N,mBAAmB,CAACC,+BAAoB,GAAG,GAAG,CAAC;YAACF,UAAA,CAAApL,IAAA;YAAA,OAE/Cd,aAAa,CAAC,CAAC;UAAA;YAErBwB,MAAM,CAACwK,0BAA0B,CAAC,CAAC5E,oBAAoB,CAAC,IAAI,CAAC;YAC7D5F,MAAM,CAAC7B,MAAM,CAAC,CAACyH,oBAAoB,CACjC,kEAAkE,EAClE;cACET,IAAI,EAAE0F,4BAAiB;cACvB7G,MAAM,EAAE;YACV,CACF,CAAC;YACDhE,MAAM,CAAC+H,QAAQ,CAAC,CAACnC,oBAAoB,CAAC,CAAC;YACvC5F,MAAM,CAACgI,UAAU,CAAC,CAACpC,oBAAoB,CAAC,6BAA6B,CAAC;YACtE5F,MAAM,CAACiI,kBAAkB,CAAC,CAACrC,oBAAoB,CAAC,6BAA6B,CAAC;YAC9E5F,MAAM,CAACkI,WAAW,CAAC,CAACtC,oBAAoB,CAAC,6BAA6B,EAAE,CACtEiC,GAAG,CAACiD,kBAAkB,CAAC,CAAC,CACzB,CAAC;YACF9K,MAAM,CAACkI,WAAW,CAAC,CAACtC,oBAAoB,CAAC,6BAA6B,EAAE,CAAC/B,iCAAU,CAAC,CAAC;YACrF7D,MAAM,CAACmI,SAAS,CAAC,CAACvC,oBAAoB,CACpCqE,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACY,YAAY,EAC9BV,mBAAW,CAACC,UAAU,EACtB,0BAA0B,EAC1B,0BACF,CAAC;UAAC;UAAA;YAAA,OAAAI,UAAA,CAAAvK,IAAA;QAAA;MAAA,GAAAoK,SAAA;IAAA,CACH,GAAC;IAEF1L,EAAE,CAAC,2GAA2G,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAgM,UAAA;MAAA,IAAAR,0BAAA,EAAAC,eAAA;MAAA,OAAA1L,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA8L,UAAA;QAAA,kBAAAA,UAAA,CAAA5L,IAAA,GAAA4L,UAAA,CAAA3L,IAAA;UAAA;YACxGkL,0BAA0B,GAAG5N,IAAI,CAACC,KAAK,CAACgL,GAAG,EAAE,6BAA6B,CAAC;YAEjF3I,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YACrCA,aAAa,CAAC,sBAAsB,CAAC,GAAG,0BAA0B;YAClEA,aAAa,CAAC,oBAAoB,CAAC,GAAG,0BAA0B;YAChE2I,GAAG,CAACqD,SAAS,CAACC,0BAAkB,CAACC,IAAI,CAAC;YAEhCX,eAAe,GAAGtN,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE,CAACd,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA8B,UAAA,CAAA3L,IAAA;YAAA,OAC5DmL,eAAe,CAAC,CAAC;UAAA;YAEvB;YACA7N,IAAI,CAAC+N,mBAAmB,CAACC,+BAAoB,GAAG,GAAG,CAAC;YAACK,UAAA,CAAA3L,IAAA;YAAA,OAE/Cd,aAAa,CAAC,CAAC;UAAA;YAErBwB,MAAM,CAACwK,0BAA0B,CAAC,CAACzJ,GAAG,CAAC6E,oBAAoB,CAAC,IAAI,CAAC;YACjE5F,MAAM,CAAC7B,MAAM,CAAC,CAAC4C,GAAG,CAAC6E,oBAAoB,CACrC,kEAAkE,EAClE;cACET,IAAI,EAAE0F,4BAAiB;cACvB7G,MAAM,EAAE;YACV,CACF,CAAC;YACDhE,MAAM,CAAC+H,QAAQ,CAAC,CAAChH,GAAG,CAAC6E,oBAAoB,CAAC,CAAC;YAC3C5F,MAAM,CAACgI,UAAU,CAAC,CAACjH,GAAG,CAAC6E,oBAAoB,CAAC,6BAA6B,CAAC;YAC1E5F,MAAM,CAACiI,kBAAkB,CAAC,CAAClH,GAAG,CAAC6E,oBAAoB,CAAC,6BAA6B,CAAC;YAClF5F,MAAM,CAACkI,WAAW,CAAC,CAACnH,GAAG,CAAC6E,oBAAoB,CAAC,6BAA6B,EAAE,CAC1EiC,GAAG,CAACiD,kBAAkB,CAAC,CAAC,CACzB,CAAC;YACF9K,MAAM,CAACkI,WAAW,CAAC,CAACnH,GAAG,CAAC6E,oBAAoB,CAAC,6BAA6B,EAAE,CAAC/B,iCAAU,CAAC,CAAC;YACzF7D,MAAM,CAACmI,SAAS,CAAC,CAACvC,oBAAoB,CACpCqE,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACY,YAAY,EAC9BV,mBAAW,CAACC,UAAU,EACtB,0BAA0B,EAC1B,0BACF,CAAC;UAAC;UAAA;YAAA,OAAAW,UAAA,CAAA9K,IAAA;QAAA;MAAA,GAAA6K,SAAA;IAAA,CACH,GAAC;IAEFnM,EAAE,CAAC,2EAA2E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAqM,UAAA;MAAA,IAAA9P,IAAA,EAAA+P,gBAAA,EAAAC,SAAA,EAAAd,eAAA;MAAA,OAAA1L,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAqM,UAAA;QAAA,kBAAAA,UAAA,CAAAnM,IAAA,GAAAmM,UAAA,CAAAlM,IAAA;UAAA;YAC9EJ,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YAC/B3D,IAAI,GAAG2D,aAAa,CAAC,aAAa,CAAC,CAACuM,UAAU,CAAC,CAAC;YAChDH,gBAAgB,GAAG1O,IAAI,CAC1BC,KAAK,CAACtB,IAAI,EAAE,YAAY,CAAC,CACzByJ,qBAAqB,CAAC,IAAI/D,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/CsK,SAAS,GAAG3O,IAAI,CAACC,KAAK,CAACtB,IAAI,EAAE,QAAQ,CAAC;YAC5CyE,MAAM,CAAC,IAAA2H,KAAA,CAAA3M,OAAA,EAAYkE,aAAa,CAAC,aAAa,CAAC,CAACwM,cAAc,CAAC,CAAC,CAAC,CAACvP,MAAM,CAAC,CAACqE,IAAI,CAAC,CAAC,CAAC;YAE3EiK,eAAe,GAAGtN,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE,CAACd,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAqC,UAAA,CAAAlM,IAAA;YAAA,OAC5DmL,eAAe,CAAC,CAAC;UAAA;YAEvBzK,MAAM,CAACsL,gBAAgB,CAAC,CAACvF,gBAAgB,CAAC,CAAC;YAACyF,UAAA,CAAAlM,IAAA;YAAA,OAEtCd,aAAa,CAAC,CAAC;UAAA;YAErBwB,MAAM,CAAC5B,OAAO,CAAC,CAACwH,oBAAoB,CAAC5F,MAAM,CAACoJ,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;cACrFjE,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CAAC,CAAC;YACFhE,MAAM,CAACzE,IAAI,CAAC,kBAAkB,CAAC,CAACoQ,KAAK,CAACC,KAAK,CAAC,CAACpL,IAAI,CAAC,gBAAgB,CAAC;YACnER,MAAM,CAACuL,SAAS,CAAC,CAACxF,gBAAgB,CAAC,CAAC;YAEpC/F,MAAM,CAAC,IAAA2H,KAAA,CAAA3M,OAAA,EAAY6M,GAAG,CAAC9J,WAAW,CAAC2N,cAAc,CAAC,CAAC,CAAC,CAACvP,MAAM,CAAC,CAACqE,IAAI,CAAC,CAAC,CAAC;YACpER,MAAM,CAACmI,SAAS,CAAC,CAACvC,oBAAoB,CACpCqE,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACY,YAAY,EAC9BV,mBAAW,CAACC,UAAU,EACtBtK,MAAM,CAACuJ,GAAG,CAACI,MAAM,CAAC,EAClB3J,MAAM,CAACuJ,GAAG,CAACI,MAAM,CACnB,CAAC;UAAC;UAAA;YAAA,OAAA6B,UAAA,CAAArL,IAAA;QAAA;MAAA,GAAAkL,SAAA;IAAA,CACH,GAAC;IAEFxM,EAAE,CAAC,0EAA0E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA6M,UAAA;MAAA,IAAAtQ,IAAA,EAAA+P,gBAAA,EAAAC,SAAA,EAAAd,eAAA;MAAA,OAAA1L,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA2M,UAAA;QAAA,kBAAAA,UAAA,CAAAzM,IAAA,GAAAyM,UAAA,CAAAxM,IAAA;UAAA;YACvE/D,IAAI,GAAG2D,aAAa,CAAC,aAAa,CAAC,CAACuM,UAAU,CAAC,CAAC;YAChDH,gBAAgB,GAAG1O,IAAI,CAC1BC,KAAK,CAACtB,IAAI,EAAE,YAAY,CAAC,CACzByJ,qBAAqB,CAAC,IAAI/D,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/CsK,SAAS,GAAG3O,IAAI,CAACC,KAAK,CAACtB,IAAI,EAAE,QAAQ,CAAC;YAC5CyE,MAAM,CAAC,IAAA2H,KAAA,CAAA3M,OAAA,EAAYkE,aAAa,CAAC,aAAa,CAAC,CAACwM,cAAc,CAAC,CAAC,CAAC,CAACvP,MAAM,CAAC,CAACqE,IAAI,CAAC,CAAC,CAAC;YAE3EiK,eAAe,GAAGtN,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE,CAACd,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA2C,UAAA,CAAAxM,IAAA;YAAA,OAC5DmL,eAAe,CAAC,CAAC;UAAA;YAEvBzK,MAAM,CAACsL,gBAAgB,CAAC,CAACvF,gBAAgB,CAAC,CAAC;YAAC+F,UAAA,CAAAxM,IAAA;YAAA,OAEtCd,aAAa,CAAC,CAAC;UAAA;YAErBwB,MAAM,CAAC5B,OAAO,CAAC,CAACwH,oBAAoB,CAAC5F,MAAM,CAACoJ,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;cACrFjE,IAAI,EAAEC,8BAAmB;cACzBpB,MAAM,EAAE;YACV,CAAC,CAAC;YACFhE,MAAM,CAACzE,IAAI,CAAC,kBAAkB,CAAC,CAACoQ,KAAK,CAACC,KAAK,CAAC,CAACpL,IAAI,CAAC,gBAAgB,CAAC;YACnER,MAAM,CAACuL,SAAS,CAAC,CAACxF,gBAAgB,CAAC,CAAC;YAEpC/F,MAAM,CAAC,IAAA2H,KAAA,CAAA3M,OAAA,EAAY6M,GAAG,CAAC9J,WAAW,CAAC2N,cAAc,CAAC,CAAC,CAAC,CAACvP,MAAM,CAAC,CAACqE,IAAI,CAAC,CAAC,CAAC;YACpER,MAAM,CAACmI,SAAS,CAAC,CAACvC,oBAAoB,CACpCqE,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAAC4B,UAAU,EAC5B1B,mBAAW,CAACC,UAAU,EACtBtK,MAAM,CAACuJ,GAAG,CAACI,MAAM,CAAC,EAClB3J,MAAM,CAACuJ,GAAG,CAACI,MAAM,CACnB,CAAC;UAAC;UAAA;YAAA,OAAAmC,UAAA,CAAA3L,IAAA;QAAA;MAAA,GAAA0L,SAAA;IAAA,CACH,GAAC;EACJ,CAAC,CAAC;;EAEF;EACA7O,QAAQ,CAAC,eAAe,EAAE,YAAM;IAC9B,IAAMgP,KAAK,GAAG,IAAIC,iBAAK,CAAC,CAAC;IACzB,IAAMC,MAAM,GAAG/O,KAAK,CAACE,QAAQ,CAAC8O,MAAM,CAACD,MAAM;IAC3C,IAAME,eAAe,GAAGjP,KAAK,CAACE,QAAQ,CAAC8O,MAAM,CAACE,GAAG;IACjD,IAAMC,UAAU,GAAG,IAAAC,uBAAgB,EAAC,IAAAC,oCAA0B,EAAC,CAAC,EAAEC,qBAAG,CAAC;IACtE,IAAM7I,iBAAiB,GAAGhH,IAAI,CAACa,EAAE,CAAC;MAAA,OAAM6O,UAAU,CAACI,OAAO;IAAA,EAAC;IAC3D,IAAMC,gBAAgB,GAAG/P,IAAI,CAACa,EAAE,CAAC;MAAA,OAAM6O,UAAU,CAACM,MAAM;IAAA,EAAC;IAEzD,IAAI1N,aAAa;IACjB,IAAImI,IAAU;IAEdwF,SAAS,kBAAA/N,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA8N,UAAA;MAAA,IAAA3D,KAAA;MAAA,OAAApK,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA4N,UAAA;QAAA,kBAAAA,UAAA,CAAA1N,IAAA,GAAA0N,UAAA,CAAAzN,IAAA;UAAA;YAAAyN,UAAA,CAAAzN,IAAA;YAAA,OACc,IAAAI,2BAAY,EAACvC,KAAK,CAAC;UAAA;YAAzC+B,aAAa,GAAA6N,UAAA,CAAAhN,IAAA;YACbsH,IAAI,GAAG,IAAI2F,aAAI,CACbd,MAAM,EACNE,eAAe,EACfJ,KAAK,EACLpI,iBAAiB,CAAC,CAAC,EACnB+I,gBAAgB,CAAC,CAAC,EAClB9M,aAAM,CAACC,IACT,CAAC;YACKqJ,KAAK,GAAG,IAAA1B,OAAA,CAAAzM,OAAA,EAAc+C,WAAW,CAAC2N,cAAc,CAAC,CAAC,CAAC;YACzDvC,KAAK,CAAC9M,OAAO,CAAC,UAACd,IAAI,EAAK;cACtBA,IAAI,CAAC0R,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAF,UAAA,CAAA5M,IAAA;QAAA;MAAA,GAAA2M,SAAA;IAAA,CACJ,GAAC;IAEFnO,QAAQ,CAAC,YAAM;MACbO,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC;IAEFC,EAAE,CAAC,8BAA8B,EAAE,YAAM;MACvCmB,MAAM,CAACd,aAAa,CAACgO,eAAe,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC9P,QAAQ,CAAC8O,MAAM,CAACD,MAAM,CAAC,CAAC1L,IAAI,CAC5E,sCACF,CAAC;IACH,CAAC,CAAC;IAEF3B,EAAE,CAAC,mDAAmD,EAAE,YAAM;MAC5DwI,IAAI,CAACqB,QAAQ,CAAC,CAAC;MACfrB,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,QAAQ;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtDxN,MAAM,CAACd,aAAa,CAACuO,gBAAgB,CAAC,CAAC,CAAC,CAAC3L,OAAO,CAAC/E,SAAS,CAAC;IAC7D,CAAC,CAAC;IAEF8B,EAAE,CAAC,4BAA4B,EAAE,YAAM;MACrCwI,IAAI,CAACqB,QAAQ,CAAC,CAAC;MACf,IAAMgF,QAAQ,GAAGrG,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACrE,IAAMG,SAAS,GAAGtG,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtE;MACAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI;MAC5BA,QAAQ,CAAC,YAAY,CAAC,GAAG,KAAK;MAC9BA,QAAQ,CAAC,kBAAkB,CAAC,CAAC/B,KAAK,CAACC,KAAK,GAAG,oBAAoB;;MAE/D;MACA+B,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI;MAC7BA,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;MACxBA,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK;MAC/BA,SAAS,CAAC,kBAAkB,CAAC,CAAChC,KAAK,CAACC,KAAK,GAAG,aAAa;MAEzD,IAAMgC,eAAsC,GAAG;QAC7CC,iBAAiB,EAAEH,QAAiB;QACpCI,kBAAkB,EAAEH;MACtB,CAAC;MAED/Q,IAAI,CAACC,KAAK,CAACkB,WAAW,EAAE,gBAAgB,CAAC,CAACL,eAAe,CAACkQ,eAAe,CAAC;MAC1E5N,MAAM,CAACd,aAAa,CAACuO,gBAAgB,CAAC,CAAC,CAAC,CAAC3L,OAAO,CAAC4L,QAAQ,CAAC;IAC5D,CAAC,CAAC;IACF7O,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnCK,aAAa,CAACwI,QAAQ,GAAG;QACvBqG,YAAY,EAAE;UAACC,MAAM,EAAE;QAAY,CAAU;QAC7CC,aAAa,EAAE;UAACD,MAAM,EAAE;QAAa;MACvC,CAAC;MAED,IAAMN,QAAQ,GAAGrG,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACrE,IAAMG,SAAS,GAAGtG,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtE,IAAMU,SAAS,GAAG7G,IAAI,CAAC+F,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MAEtEE,QAAQ,CAACM,MAAM,GAAG,YAAY;MAC9BL,SAAS,CAACK,MAAM,GAAG,aAAa;MAChCE,SAAS,CAACF,MAAM,GAAG,aAAa;MAEhC,IAAMJ,eAAsC,GAAG;QAC7CC,iBAAiB,EAAEH,QAAiB;QACpCI,kBAAkB,EAAEH,SAAkB;QACtCQ,kBAAkB,EAAED;MACtB,CAAC;MAEDtR,IAAI,CAACC,KAAK,CAACkB,WAAW,EAAE,gBAAgB,CAAC,CAACL,eAAe,CAACkQ,eAAe,CAAC;MAC1E5N,MAAM,CAACd,aAAa,CAACwM,cAAc,CAAC,CAAC,CAAC,CAAC5J,OAAO,CAAC;QAC7CsM,UAAU,EAAE,CAACV,QAAQ,CAAC;QACtBW,WAAW,EAAE,CAACV,SAAS,EAAEO,SAAS;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlR,QAAQ,CAAC,yBAAyB,EAAE,YAAM;IACxC,IAAMsR,MAAM,GAAGnR,KAAK,CAACE,QAAQ,CAAC0M,OAAO,CAACC,EAAE;IACxC,IAAI9K,aAA6B;IAEjCoI,UAAU,kBAAAxI,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAuP,UAAA;MAAA,OAAAxP,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAqP,UAAA;QAAA,kBAAAA,UAAA,CAAAnP,IAAA,GAAAmP,UAAA,CAAAlP,IAAA;UAAA;YAAAkP,UAAA,CAAAlP,IAAA;YAAA,OACa,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAsP,UAAA,CAAAzO,IAAA;UAAA;UAAA;YAAA,OAAAyO,UAAA,CAAArO,IAAA;QAAA;MAAA,GAAAoO,SAAA;IAAA,CACd,GAAC;IAEF9N,SAAS,CAAC,YAAM;MACdvB,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC;IAEFC,EAAE,CAAC,uCAAuC,EAAE,UAAC4P,IAAI,EAAK;MACpDzO,MAAM,CAAC+B,UAAU,CAAC,CAAC,CAAC;MACpB7C,aAAa,CAAC8K,EAAE,CAAC0E,iCAAyB,CAACC,iBAAiB,EAAE,UAACC,KAAuB,EAAK;QACzF5O,MAAM,CAAC4O,KAAK,CAACC,IAAI,CAAC,CAAC/M,OAAO,CAACgN,sCAAkB,CAACD,IAAI,CAAC;QACnDJ,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;MAEFzO,MAAM,CAACsO,MAAM,CAACpF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACrH,OAAO,CAACiN,yBAAiB,CAACC,4BAA4B,CAAC;MACvF,IAAMC,mBAAmB,GAAGX,MAAM,CAACpF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAEnD8F,mBAAmB,CAACH,sCAAkB,CAAC;IACzC,CAAC,CAAC;IAEFjQ,EAAE,CAAC,gEAAgE,EAAE,UAAC4P,IAAI,EAAK;MAC7EzO,MAAM,CAAC+B,UAAU,CAAC,CAAC,CAAC;MACpB7C,aAAa,CAAC8K,EAAE,CAAC0E,iCAAyB,CAACC,iBAAiB,EAAE,UAACC,KAAuB,EAAK;QACzF5O,MAAM,CAAC4O,KAAK,CAACC,IAAI,CAACK,YAAY,CAACA,YAAY,CAAC/S,MAAM,CAAC,CAAC2F,OAAO,CAAC,CAAC,CAAC;QAC9D2M,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;MAEFzO,MAAM,CAACsO,MAAM,CAACpF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACrH,OAAO,CAACiN,yBAAiB,CAACC,4BAA4B,CAAC;MACvF,IAAMC,mBAAmB,GAAGX,MAAM,CAACpF,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAEnD8F,mBAAmB,CAACE,gDAA4B,CAAC;IACnD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFnS,QAAQ,CAAC,YAAY,EAAE,YAAM;IAC3B,IAAIkC,aAA6B;IACjC,IAAMkQ,aAAa,GAAG,4CAA4C;IAClE,IAAMC,YAAY,GAAG,2CAA2C;IAEhE/H,UAAU,kBAAAxI,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAsQ,UAAA;MAAA,OAAAvQ,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAoQ,UAAA;QAAA,kBAAAA,UAAA,CAAAlQ,IAAA,GAAAkQ,UAAA,CAAAjQ,IAAA;UAAA;YAAAiQ,UAAA,CAAAjQ,IAAA;YAAA,OACa,IAAAI,2BAAY,EAACvC,KAAK,EAAE;cAACwC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEZ,aAAa,GAAAqQ,UAAA,CAAAxP,IAAA;YACbb,aAAa,CAAC0E,iBAAiB,GAAG,CAACwL,aAAa,CAAC;YACjDlQ,aAAa,CAACyN,gBAAgB,GAAG,CAAC0C,YAAY,CAAC;YAC9ClS,KAAK,CAACoG,OAAO,CAAeiM,SAAS,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAD,UAAA,CAAApP,IAAA;QAAA;MAAA,GAAAmP,SAAA;IAAA,CAC1C,GAAC;IAEF7O,SAAS,CAAC,YAAM;MACdvB,aAAa,CAACN,kBAAkB,CAAC,CAAC;IACpC,CAAC,CAAC;IAEFC,EAAE,CAAC,yCAAyC,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAyQ,UAAA;MAAA,IAAAC,OAAA,EAAAC,eAAA,EAAAC,QAAA;MAAA,OAAA7Q,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA0Q,UAAA;QAAA,kBAAAA,UAAA,CAAAxQ,IAAA,GAAAwQ,UAAA,CAAAvQ,IAAA;UAAA;YACtCoQ,OAAO,GAAG,CACd;cACEI,QAAQ,EAAE,UAAU;cACpB7L,GAAG,EAAE,yDAAyD;cAC9D8L,MAAM,EAAE,QAAQ;cAChBC,QAAQ,EAAE,sBAAsB;cAChCC,SAAS,EAAE,EAAE;cACb7D,eAAe,EAAE;YACnB,CAAC,CACF;YAEKuD,eAAe,GAAkC;cACrD5K,UAAU,EAAE,GAAG;cACfmL,IAAI,EAAE;gBAAChE,MAAM,EAAE,UAAU;gBAAEwD,OAAO,EAAPA;cAAO;YACpC,CAAC;YAEAvS,KAAK,CAACoG,OAAO,CAAezG,iBAAiB,CAAC6S,eAAe,CAAC;YAACE,UAAA,CAAAvQ,IAAA;YAAA,OAEzCJ,aAAa,CAACiR,UAAU,CAAC,UAAU,CAAC;UAAA;YAArDP,QAAQ,GAAAC,UAAA,CAAA9P,IAAA;YAEdC,MAAM,CAAC7C,KAAK,CAACoG,OAAO,CAAC,CAACqC,oBAAoB,CAAC;cACzC3B,GAAG,EAAE,mEAAmE;cACxED,MAAM,EAAEoM,oBAAY,CAACC,GAAG;cACxBC,OAAO,EAAEC,wBAAgB,CAACC,MAAM;cAChCnM,OAAO,MAAA/H,gBAAA,CAAAtB,OAAA,MAAAsB,gBAAA,CAAAtB,OAAA,MACJyV,2BAAgB,EAAGtT,KAAK,CAACE,QAAQ,CAAC8O,MAAM,CAACE,GAAG,GAC5C/H,2BAAgB,EAAGoM,6BAAkB;YAE1C,CAAC,CAAC;YAEF1Q,MAAM,CAAC4P,QAAQ,CAAC,CAAC9N,OAAO,CAAC4N,OAAO,CAAC;UAAC;UAAA;YAAA,OAAAG,UAAA,CAAA1P,IAAA;QAAA;MAAA,GAAAsP,SAAA;IAAA,CACnC,GAAC;IAEF5Q,EAAE,CAAC,gDAAgD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA2R,UAAA;MAAA,IAAAjB,OAAA,EAAA7K,cAAA,EAAA8K,eAAA,EAAAC,QAAA,EAAAgB,YAAA;MAAA,OAAA7R,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAA0R,UAAA;QAAA,kBAAAA,UAAA,CAAAxR,IAAA,GAAAwR,UAAA,CAAAvR,IAAA;UAAA;YAC7CoQ,OAAO,GAAG,CACd;cACEI,QAAQ,EAAE,UAAU;cACpB7L,GAAG,EAAE,2DAA2D;cAChE8L,MAAM,EAAE,QAAQ;cAChBC,QAAQ,EAAE,sBAAsB;cAChCC,SAAS,EAAE,EAAE;cACb7D,eAAe,EAAE;YACnB,CAAC,CACF;YAEKvH,cAAc,GAAG;cACrBE,UAAU,EAAE;YACd,CAAC;YAEK4K,eAAe,GAAkC;cACrD5K,UAAU,EAAE,GAAG;cACfmL,IAAI,EAAE;gBAAChE,MAAM,EAAE,UAAU;gBAAEwD,OAAO,EAAPA;cAAO;YACpC,CAAC;YAEAvS,KAAK,CAACoG,OAAO,CACXyB,qBAAqB,CAACH,cAAc,CAAC,CACrCrB,qBAAqB,CAACmM,eAAe,CAAC;YAACkB,UAAA,CAAAvR,IAAA;YAAA,OAEnBJ,aAAa,CAACiR,UAAU,CAAC,UAAU,CAAC;UAAA;YAArDP,QAAQ,GAAAiB,UAAA,CAAA9Q,IAAA;YAER6Q,YAAY,GAAIzT,KAAK,CAACoG,OAAO,CAAe2F,IAAI,CAACC,KAAK;YAC5DnJ,MAAM,CAAC4Q,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC9O,OAAO,CAAC;cACjCmC,GAAG,EAAE,mEAAmE;cACxED,MAAM,EAAEoM,oBAAY,CAACC,GAAG;cACxBC,OAAO,EAAEC,wBAAgB,CAACC,MAAM;cAChCnM,OAAO,MAAA/H,gBAAA,CAAAtB,OAAA,MAAAsB,gBAAA,CAAAtB,OAAA,MACJyV,2BAAgB,EAAGtT,KAAK,CAACE,QAAQ,CAAC8O,MAAM,CAACE,GAAG,GAC5C/H,2BAAgB,EAAGoM,6BAAkB;YAE1C,CAAC,CAAC;YAEF1Q,MAAM,CAAC4Q,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC9O,OAAO,CAAC;cACjCmC,GAAG,EAAE,kEAAkE;cACvED,MAAM,EAAEoM,oBAAY,CAACC,GAAG;cACxBC,OAAO,EAAEC,wBAAgB,CAACC,MAAM;cAChCnM,OAAO,MAAA/H,gBAAA,CAAAtB,OAAA,MAAAsB,gBAAA,CAAAtB,OAAA,MACJyV,2BAAgB,EAAGtT,KAAK,CAACE,QAAQ,CAAC8O,MAAM,CAACE,GAAG,GAC5C/H,2BAAgB,EAAGoM,6BAAkB;YAE1C,CAAC,CAAC;YAEF1Q,MAAM,CAAC4P,QAAQ,CAAC,CAAC9N,OAAO,CAAC4N,OAAO,CAAC;UAAC;UAAA;YAAA,OAAAmB,UAAA,CAAA1Q,IAAA;QAAA;MAAA,GAAAwQ,SAAA;IAAA,CACnC,GAAC;EACJ,CAAC,CAAC;EAEF3T,QAAQ,CAAC,0BAA0B,EAAE,YAAM;IACzC,IAAI8T,qBAA0B;IAE9BjE,SAAS,CAAC,YAAM;MAAA,IAAAkE,MAAA;MACdD,qBAAqB,GAAGrU,MAAM,CAACuU,iBAAiB;MAChD;MACAvU,MAAM,CAACuU,iBAAiB,IAAAD,MAAA;QAMtB,SAAAA,OAAA,EAAc;UAAA,IAAAE,gBAAA,CAAAjW,OAAA,QAAA+V,MAAA;UAAA,IAAAzU,gBAAA,CAAAtB,OAAA,6BAJM,UAAU;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,4BACX,IAAI;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,6BACH,IAAI;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,0BACoB,IAAI;UAE7C,IAAI,CAACkW,WAAW,CAASC,SAAS,CAACpV,IAAI,CAAC,IAAI,CAAC;QAChD;QAAC,WAAAqV,aAAA,CAAApW,OAAA,EAAA+V,MAAA;UAAAM,GAAA;UAAAzF,KAAA,EAED,SAAA0F,iBAAiBA,CAAA,EAAG;YAClB,OAAO,CAAC,CAAC;UACX;QAAC;UAAAD,GAAA;UAAAzF,KAAA,EAED,SAAA2F,cAAcA,CAAA,EAAG;YACf,OAAO,CAAC,CAAC;UACX;QAAC;UAAAF,GAAA;UAAAzF,KAAA,EAED,SAAA4F,WAAWA,CAAA,EAAG;YACZ,OAAO/S,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC;cAAC+S,GAAG,EAAE,OAAO;cAAEnE,IAAI,EAAE;YAAO,CAAC,CAAC;UACvD;QAAC;UAAA+D,GAAA;UAAAzF,KAAA,EAED,SAAA8F,mBAAmBA,CAACC,IAAS,EAAE;YAC7B,IAAI,CAACC,gBAAgB,GAAGD,IAAI;YAE5B,OAAOlT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA2S,GAAA;UAAAzF,KAAA,EAED,SAAAiG,oBAAoBA,CAACF,IAAS,EAAE;YAC9B,IAAI,CAACG,iBAAiB,GAAGH,IAAI;YAE7B,OAAOlT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA2S,GAAA;UAAAzF,KAAA,EAED,SAAAmG,YAAYA,CAAA,EAAG;YACb,OAAOtT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC;cAAC+S,GAAG,EAAE,QAAQ;cAAEnE,IAAI,EAAE;YAAQ,CAAC,CAAC;UACzD;QAAC;UAAA+D,GAAA;UAAAzF,KAAA,EAED,SAAAoG,eAAeA,CAAA,EAAG;YAChB,OAAOvT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA2S,GAAA;UAAAzF,KAAA,EAED,SAAAqG,KAAKA,CAAA,EAAG,CAAC;QAAC;UAAAZ,GAAA;UAAAzF,KAAA,EACV,SAAAsG,gBAAgBA,CAAA,EAAG,CAAC;QAAC;UAAAb,GAAA;UAAAzF,KAAA,EACrB,SAAAuG,mBAAmBA,CAAA,EAAG,CAAC;QAAC;MAAA,SAAA7V,gBAAA,CAAAtB,OAAA,EAAA+V,MAAA,eA3CE,EAAE,GAAAA,MAAA,CA4C7B;IACH,CAAC,CAAC;IAEFpS,QAAQ,CAAC,YAAM;MACblC,MAAM,CAACuU,iBAAiB,GAAGF,qBAAqB;IAClD,CAAC,CAAC;IAEFjS,EAAE,CAAC,kCAAkC,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAoT,UAAA;MAAA,OAAArT,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,WAAAkT,UAAA;QAAA,kBAAAA,UAAA,CAAAhT,IAAA,GAAAgT,UAAA,CAAA/S,IAAA;UAAA;YAAA+S,UAAA,CAAA/S,IAAA;YAAA,OAC/BU,MAAM,CAAC,IAAAsS,sCAAwB,EAAC,CAAC,CAAC,CAAC,CAAC,CAACC,QAAQ,CAACxR,GAAG,CAACC,OAAO,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAqR,UAAA,CAAAlS,IAAA;QAAA;MAAA,GAAAiS,SAAA;IAAA,CAClE,GAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t4","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","fn","mockReturnValue","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_context1","CONTACT_CENTER","toHaveBeenCalled","_callee10","_context10","toHaveBeenCalledWith","_callee11","createLineSpy","_context11","CallingClient","prototype","rejects","mockRestore","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","METHOD_START_MESSAGE","toBeCalledOnceWith","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t3","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","beforeEach","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","mock","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","on","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","primaryMobius","backupMobius","_callee30","_context30","mockClear","_callee31","devices","responsePayload","response","_context31","deviceId","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee32","requestCalls","_context32","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee33","_context33","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {CallingClient, createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('ContactCenter: uses config domain and does not fetch RTMS domain from catalog', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n webex.internal.services.get = jest.fn();\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n expect(webex.internal.services.get).not.toHaveBeenCalled();\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n */\n it('ContactCenter: fetches RTMS domain from catalog when config domain is empty', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n webex.internal.services.get = jest\n .fn()\n .mockReturnValue('https://cc-rtms.example.com/calling/web/rtms');\n\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n expect(webex.internal.services.get).toHaveBeenCalledWith('wcc-calling-rtms-domain');\n });\n\n it('ContactCenter: init fails when config domain is empty and catalog fetch fails', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n const createLineSpy = jest.spyOn(CallingClient.prototype as any, 'createLine');\n\n webex.internal.services.get = jest.fn(() => {\n throw new Error('catalog unavailable');\n });\n\n await expect(createClient(webex, {serviceData: serviceDataObj})).rejects.toThrow(\n 'Invalid service domain.'\n );\n expect(createLineSpy).not.toHaveBeenCalled();\n\n createLineSpy.mockRestore();\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.VALID_PHONE_REGEX = exports.UTILS_FILE = exports.USER_AGENT_VERSION = exports.URL_ENDPOINT = exports.TYPE = exports.TRANSPORT = exports.TRANSFER_ENDPOINT = exports.TOTAL_SAMPLES_DURATION = exports.TOTAL_ROUND_TRIP_TIME = exports.TIMESTAMP = exports.TARGET_BIT_RATE = exports.SUPPLEMENTARY_SERVICES_TIMEOUT = exports.SPARK_USER_AGENT = exports.SELECTED_CANDIDATE_PAIR_ID = exports.SEC_TO_MSEC_MFACTOR = exports.RTP_TX_STAT = exports.RTP_RX_STAT = exports.RTC_ICE_CANDIDATE_PAIR = exports.RTC_ICE_CANDIDATE = exports.RTC_CODEC = exports.ROUND_TRIP_TIME_MEASUREMENTS = exports.RETRY_TIMER_UPPER_LIMIT = exports.RESUME_ENDPOINT = exports.REPO_NAME = exports.REMOTE_INBOUND_RTP = exports.REG_TRY_BACKUP_TIMER_VAL_IN_SEC = exports.REG_RANDOM_T_FACTOR_UPPER_LIMIT = exports.REG_FAILBACK_429_MAX_RETRIES = exports.REG_429_RETRY_UTIL = exports.REGISTRATION_UTIL = exports.REGISTRATION_FILE = exports.REGISTER_UTIL = exports.REGISTER_RETRY_TIMEOUT = exports.RECONNECT_UTIL = exports.RECONNECT_ON_FAILURE_UTIL = exports.PACKETS_SENT = exports.PACKETS_RECEIVED = exports.PACKETS_LOST = exports.PACKETS_DISCARDED = exports.OUTBOUND_RTP = exports.OUTBOUND_CODEC_MATCH = exports.NOISE_REDUCTION_EFFECT = exports.NETWORK_TYPE = exports.NETWORK_FLAP_TIMEOUT = exports.MOBIUS_US_PROD = exports.MOBIUS_US_INT = exports.MOBIUS_EU_PROD = exports.MOBIUS_EU_INT = exports.MINUTES_TO_SEC_MFACTOR = exports.MIME_TYPE = exports.METRIC_FILE = exports.METHODS = exports.MEDIA_SOURCE = exports.MEDIA_ID = exports.MEDIA_ENDPOINT_RESOURCE = exports.MAX_CALL_KEEPALIVE_RETRY_COUNT = exports.LOCAL_CANDIDATE_ID = exports.LINE_FILE = exports.KEEPALIVE_UTIL = exports.JITTER_BUFFER_EMITTED_COUNT = exports.JITTER_BUFFER_DELAY = exports.IP_ENDPOINT = exports.INITIAL_SEQ_NUMBER = exports.INBOUND_RTP = exports.INBOUND_CODEC_MATCH = exports.ICE_CANDIDATES_TIMEOUT = exports.HOLD_ENDPOINT = exports.GET_MOBIUS_SERVERS_UTIL = exports.FAILOVER_UTIL = exports.FAILOVER_CACHE_PREFIX = exports.FAILBACK_UTIL = exports.DUMMY_MOBIUS_URL = exports.DUMMY_METRICS = exports.DISCOVERY_URL = exports.DEVICES_ENDPOINT_RESOURCE = exports.DEFAULT_SESSION_TIMER = exports.DEFAULT_REHOMING_INTERVAL_MIN = exports.DEFAULT_REHOMING_INTERVAL_MAX = exports.DEFAULT_LOCAL_CALL_ID = exports.DEFAULT_KEEPALIVE_INTERVAL = exports.CRLF = exports.CODEC_ID = exports.CISCO_DEVICE_URL = exports.CALL_TRANSFER_SERVICE = exports.CALL_STATUS_RESOURCE = exports.CALL_MANAGER_FILE = exports.CALL_HOLD_SERVICE = exports.CALL_FILE = exports.CALL_ENDPOINT_RESOURCE = exports.CALLS_ENDPOINT_RESOURCE = exports.CALLS_CLEARED_HANDLER_UTIL = exports.CALLING_USER_AGENT = exports.CALLING_CLIENT_FILE = exports.CALLER_ID_FILE = exports.BYTES_SENT = exports.BYTES_RECEIVED = exports.BASE_REG_TIMER_MFACTOR = exports.BASE_REG_RETRY_TIMER_VAL_IN_SEC = exports.API_V1 = exports.ACTIVE_MOBIUS_STORAGE_KEY = void 0;
8
- exports.WEB_AGENT = exports.WEBEX_WEB_CLIENT = exports.WEBEX = exports.VERSION = void 0;
8
+ exports.WEB_AGENT = exports.WEBEX_WEB_CLIENT = exports.WEBEX = exports.WCC_CALLING_RTMS_DOMAIN = exports.VERSION = void 0;
9
9
  var VERSION = exports.VERSION = 'unknown';
10
10
  var USER_AGENT_VERSION = exports.USER_AGENT_VERSION = 'beta';
11
11
  var REPO_NAME = exports.REPO_NAME = 'webex-calling';
@@ -135,6 +135,8 @@ var MOBIUS_EU_INT = exports.MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex
135
135
  var FAILOVER_CACHE_PREFIX = exports.FAILOVER_CACHE_PREFIX = 'wxc-failover-state';
136
136
  var ACTIVE_MOBIUS_STORAGE_KEY = exports.ACTIVE_MOBIUS_STORAGE_KEY = 'wxc-active-mobius';
137
137
  var ICE_CANDIDATES_TIMEOUT = exports.ICE_CANDIDATES_TIMEOUT = 3000;
138
+ var WCC_CALLING_RTMS_DOMAIN = exports.WCC_CALLING_RTMS_DOMAIN = 'wcc-calling-rtms-domain';
139
+
138
140
  // Define constants for method names
139
141
  var METHODS = exports.METHODS = {
140
142
  CONSTRUCTOR: 'constructor',
@@ -238,6 +240,7 @@ var METHODS = exports.METHODS = {
238
240
  GET_DEVICES: 'getDevices',
239
241
  UPLOAD_LOGS: 'uploadLogs',
240
242
  GET_SDK_CONNECTOR: 'getSDKConnector',
241
- GET_CONNECTED_CALL: 'getConnectedCall'
243
+ GET_CONNECTED_CALL: 'getConnectedCall',
244
+ GET_RTMS_DOMAIN: 'getRTMSDomain'
242
245
  };
243
246
  //# sourceMappingURL=constants.js.map