chromium-bidi 0.1.2 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -243,3 +243,23 @@ There are 2 main modules:
243
243
 
244
244
  The BiDi commands are processed in the `src/bidiMapper/commandProcessor.ts`. To
245
245
  add a new command, add it to `_processCommand`, write and call processor for it.
246
+
247
+ ## Publish new `npm` release
248
+
249
+ 1. On the `main` branch, bump the chromium-bidi version number in `package.json`:
250
+
251
+ ```sh
252
+ npm version patch -m 'Release v%s'
253
+ ```
254
+
255
+ Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
256
+
257
+ Note that this produces a Git commit + tag.
258
+
259
+ 1. Push the release commit and tag:
260
+
261
+ ```sh
262
+ git push && git push --tags
263
+ ```
264
+
265
+ Our CI then automatically publishes the new release to npm.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chromium-bidi",
3
- "version": "0.1.2",
3
+ "version": "0.4.2",
4
4
  "description": "An implementation of the WebDriver BiDi protocol for Chromium implemented as a JavaScript layer translating between BiDi and CDP, running inside a Chrome tab.",
5
5
  "main": "index.ts",
6
6
  "scripts": {
@@ -213,6 +213,26 @@
213
213
  },
214
214
  });
215
215
  });
216
+ this._cdpClient.Runtime.on('exceptionThrown', async (params) => {
217
+ let text = params.exceptionDetails.text;
218
+ if (params.exceptionDetails.exception) {
219
+ const exceptionString = await this._serializer.stringifyCdpException(params.exceptionDetails.exception);
220
+ if (exceptionString) {
221
+ text = exceptionString;
222
+ }
223
+ }
224
+ await this._bidiServer.sendMessage({
225
+ method: 'log.entryAdded',
226
+ params: {
227
+ level: 'error',
228
+ text,
229
+ timestamp: params.timestamp,
230
+ stackTrace: this._getBidiStackTrace(params.exceptionDetails.stackTrace),
231
+ type: 'javascript',
232
+ realm: this._contextId,
233
+ },
234
+ });
235
+ });
216
236
  }
217
237
  _getLogLevel(consoleAPIType) {
218
238
  if (consoleAPIType in ['error', 'assert']) {
@@ -301,6 +321,24 @@
301
321
  throw new Error('Cannot serialize object: ' + response.exceptionDetails.text);
302
322
  return response.result.value;
303
323
  }
324
+ /**
325
+ * Gets the string representation of an exception. This is equivalent to
326
+ * calling toString() on the exception value. If the exception is an Error,
327
+ * this will be the Error's message property.
328
+ * @param exception CDP remote object representing a thrown exception.
329
+ * @returns string The stringified exception message.
330
+ */
331
+ async stringifyCdpException(exception) {
332
+ const response = await this._cdpClient.Runtime.callFunctionOn({
333
+ functionDeclaration: String(function (exception) {
334
+ return String(exception);
335
+ }),
336
+ objectId: await this.getDummyContextId(),
337
+ arguments: [exception],
338
+ returnByValue: true,
339
+ });
340
+ return response.result.value;
341
+ }
304
342
  }
305
343
 
306
344
  /**
@@ -482,6 +520,7 @@
482
520
  const exception = await this._serializer.serializeCdpObject(
483
521
  // Exception should always be there.
484
522
  cdpExceptionDetails.exception);
523
+ const text = await this._serializer.stringifyCdpException(cdpExceptionDetails.exception);
485
524
  return {
486
525
  exceptionDetails: {
487
526
  exception,
@@ -492,7 +531,7 @@
492
531
  stackTrace: {
493
532
  callFrames: callFrames || [],
494
533
  },
495
- text: cdpExceptionDetails.text,
534
+ text: text || cdpExceptionDetails.text,
496
535
  },
497
536
  };
498
537
  }
@@ -26067,5 +26106,5 @@
26067
26106
  });
26068
26107
  }
26069
26108
 
26070
- }());
26109
+ })();
26071
26110
  //# sourceMappingURL=mapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.js","sources":["../../utils/log.ts","../../bidiMapper/domains/context/logHelper.ts","../../bidiMapper/domains/context/logManager.ts","../../bidiMapper/domains/context/serializer.ts","../../bidiMapper/domains/context/context.ts","../../bidiMapper/domains/context/browsingContextProcessor.ts","../../bidiMapper/commandProcessor.ts","../../../node_modules/rollup-plugin-node-polyfills/polyfills/events.js","../../cdp/cdpClient.ts","../../cdp/cdpConnection.ts","../../bidiMapper/utils/bidiServer.ts","../../bidiMapper/domains/events/EventManager.ts","../../bidiMapper/mapper.ts"],"sourcesContent":[null,null,null,null,null,null,null,"'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n",null,null,null,null,null],"names":["browserProtocol.domains","jsProtocol.domains"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"mapper.js","sources":["../../utils/log.ts","../../bidiMapper/domains/context/logHelper.ts","../../bidiMapper/domains/context/logManager.ts","../../bidiMapper/domains/context/serializer.ts","../../bidiMapper/domains/context/context.ts","../../bidiMapper/domains/context/browsingContextProcessor.ts","../../bidiMapper/commandProcessor.ts","../../../node_modules/rollup-plugin-node-polyfills/polyfills/events.js","../../cdp/cdpClient.ts","../../cdp/cdpConnection.ts","../../bidiMapper/utils/bidiServer.ts","../../bidiMapper/domains/events/EventManager.ts","../../bidiMapper/mapper.ts"],"sourcesContent":[null,null,null,null,null,null,null,"'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n",null,null,null,null,null],"names":["browserProtocol.domains","jsProtocol.domains"],"mappings":"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AAC,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1dA;;;;;;;;;;;;;;;IAeG;IAqBH,MAAM,cAAc,GAAG,CAAC,GAAGA,SAAuB,EAAE,GAAGC,OAAkB,CAAC,CAAC;IAE3E;IACA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAGjC,CAAC;IAEJ;IACA,MAAM,UAAW,SAAQ,YAAY,CAAA;IACf,IAAA,OAAA,CAAA;IAApB,IAAA,WAAA,CAAoB,OAAsB,EAAA;IACxC,QAAA,KAAK,EAAE,CAAC;YADU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;SAEzC;IACF,CAAA;IAED,KAAK,IAAI,UAAU,IAAI,cAAc,EAAE;;;QAGrC,MAAM,UAAW,SAAQ,UAAU,CAAA;IACjC,QAAA,WAAA,CAAY,OAAsB,EAAA;gBAChC,KAAK,CAAC,OAAO,CAAC,CAAC;aAChB;IACF,KAAA;;IAGD,IAAA,KAAK,IAAI,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;gBACxD,KAAK,EAAE,gBAAgB,MAAc,EAAA;IACnC,gBAAA,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CACnC,CAAG,EAAA,UAAU,CAAC,MAAM,CAAA,CAAA,EAAI,OAAO,CAAC,IAAI,EAAE,EACtC,MAAM,CACP,CAAC;iBACH;IACF,SAAA,CAAC,CAAC;IACJ,KAAA;QAED,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,CAAA;IASD,MAAM,aAAc,SAAQ,YAAY,CAAA;IAI5B,IAAA,cAAA,CAAA;IACA,IAAA,UAAA,CAAA;IAJF,IAAA,QAAQ,CAA0B;QAE1C,WACU,CAAA,cAA6B,EAC7B,UAAyB,EAAA;IAEjC,QAAA,KAAK,EAAE,CAAC;YAHA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;YAC7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAe;IAIjC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE;IAC/D,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;oBACtC,GAAG,GAAA;wBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;qBACtC;IACF,aAAA,CAAC,CAAC;IACJ,SAAA;SACF;IAED;;;;IAIG;QACH,WAAW,CAAC,MAAc,EAAE,MAAc,EAAA;IACxC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACzE;QAED,WAAW,CAAC,MAAc,EAAE,MAAc,EAAA;;YAExC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;IAGnC,QAAA,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,QAAA,IAAI,MAAM,EAAE;IACV,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChC,SAAA;SACF;IACF,CAAA;IAED;;;;;IAKG;IACa,SAAA,YAAY,CAC1B,aAA4B,EAC5B,SAAwB,EAAA;IAExB,IAAA,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,SAAS,CAAyB,CAAC;IAC7E;;ICvIA;;;;;;;;;;;;;;;IAeG;IAOH,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IAO1B;;;IAGG;UACU,aAAa,CAAA;IAMJ,IAAA,UAAA,CAAA;IALZ,IAAA,iBAAiB,CAAY;IAC7B,IAAA,kBAAkB,GAA2B,IAAI,GAAG,EAAE,CAAC;IACvD,IAAA,iBAAiB,GAA8B,IAAI,GAAG,EAAE,CAAC;IACzD,IAAA,OAAO,CAAS;IAExB,IAAA,WAAA,CAAoB,UAAsB,EAAA;YAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACxC,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACnD;IAED;;IAEG;QACH,KAAK,GAAA;IACH,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACxB,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACtD,YAAA,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACnC,SAAA;IACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACjC;IAED;;IAEG;QACH,aAAa,GAAA;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC;SAC/B;IAED;;;;IAIG;IACH,IAAA,YAAY,CAAC,SAAiB,EAAA;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,EAAE;IACd,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3C,SAAA;IACD,QAAA,OAAO,SAAS,CAAC;SAClB;IAED,IAAA,WAAW,CACT,MAAc,EACd,MAAc,EACd,SAAwB,EAAA;YAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACrC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACpD,YAAA,IAAI,SAAS,EAAE;IACb,gBAAA,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;IAClC,aAAA;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9C,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxC,YAAA,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;IACjC,SAAC,CAAC,CAAC;SACJ;IAEO,IAAA,UAAU,GAAG,OAAO,OAAe,KAAI;IAC7C,QAAA,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;;IAInC,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,yBAAyB,EAAE;IAC/C,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACvE,SAAA;IAAM,aAAA,IAAI,MAAM,CAAC,MAAM,KAAK,2BAA2B,EAAE;IACxD,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,YAAA,IAAI,MAAM,EAAE;IACV,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,aAAA;IACF,SAAA;IAED,QAAA,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE;;IAE3B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,YAAA,IAAI,SAAS,EAAE;oBACb,IAAI,MAAM,CAAC,MAAM,EAAE;IACjB,oBAAA,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAA;yBAAM,IAAI,MAAM,CAAC,KAAK,EAAE;IACvB,oBAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,iBAAA;IACF,aAAA;IACF,SAAA;iBAAM,IAAI,MAAM,CAAC,MAAM,EAAE;IACxB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;sBAC3B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/C,kBAAE,IAAI,CAAC,iBAAiB,CAAC;IAC3B,YAAA,IAAI,MAAM,EAAE;IACV,gBAAA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxD,aAAA;IACF,SAAA;IACH,KAAC,CAAC;IACH;;ICrID;;;;;;;;;;;;;;;IAeG;IAQH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAyBtB,MAAO,UAAW,SAAQ,YAAY,CAAA;IACtB,IAAA,UAAA,CAAA;IAApB,IAAA,WAAA,CAAoB,UAAsB,EAAA;IACxC,QAAA,KAAK,EAAE,CAAC;YADU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;YAGxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnD;IAED;;IAEG;QACH,MAAM,WAAW,CAAC,UAAkB,EAAA;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9C,QAAA,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;IAChC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,KAAK,GAAA;IACH,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACzB;IAEO,IAAA,cAAc,GAAG,OAAO,UAAkB,KAAI;IACpD,QAAA,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC;IAEpC,QAAA,IAAI,UAAU,CAAC;YACf,IAAI;IACF,YAAA,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,SAAA;IAAC,QAAA,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO;IACR,SAAA;IACD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnC,KAAC,CAAC;IAEM,IAAA,iBAAiB,CACvB,gBAAwB,EACxB,SAAiB,EACjB,YAAoB,EAAA;IAEpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAC1C,gBAAgB,EAChB,SAAS,EACT,YAAY,CACb,CAAC;IACF,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SACjC;IAEO,IAAA,YAAY,CAAC,KAAU,EAAA;YAC7B,IAAI,KAAK,KAAK,IAAI,EAAE;IAClB,YAAA,OAAO,MAAM,CAAC;IACf,SAAA;IACD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACxB,YAAA,OAAO,OAAO,CAAC;IAChB,SAAA;YACD,OAAO,OAAO,KAAK,CAAC;SACrB;IAEO,IAAA,iBAAiB,CACvB,UAAkB,EAClB,SAAiB,EACjB,YAAoB,EAAA;;;YAIpB,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,IAAI;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,IAAI,IAAI,UAAU,EAAE;IACpE,gBAAA,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,aAAA;IACF,SAAA;IAAC,QAAA,MAAM,GAAE;YAEV,OAAO;IACL,YAAA,EAAE,EAAE,SAAS;IACb,YAAA,KAAK,EAAE,SAAS;IAChB,YAAA,OAAO,EAAE,YAAY;;aAEtB,CAAC;SACH;IAEO,IAAA,iBAAiB,CAAC,UAAkB,EAAA;IAC1C,QAAA,IAAI,UAAe,CAAC;YACpB,IAAI;IACF,YAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,SAAA;YAAC,MAAM;IACN,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC9C,SAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,UAAU,KAAK,QAAQ,EAAE;IAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAA,CAAE,CAAC,CAAC;IAC/D,SAAA;;YAGD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;YAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrC,QAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;;;IAG1D,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAA,CAAE,CAAC,CAAC;IAChE,SAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,UAAU,KAAK,QAAQ,EAAE;IAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,CAAA,CAAE,CAAC,CAAC;IACjE,SAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,UAAU,KAAK,QAAQ,EAAE;IAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,CAAA,CAAE,CAAC,CAAC;IACjE,SAAA;IAED,QAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAC/B;IACF;;;;UC9IY,YAAY,CAAA;IAOH,IAAA,WAAA,CAAA;;IALZ,IAAA,cAAc,GAGlB,IAAI,GAAG,EAAE,CAAC;IAEd,IAAA,WAAA,CAAoB,WAAwB,EAAA;YAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;SAAI;IAEhD,IAAA,MAAM,SAAS,CACb,KAAoB,EACpB,SAAiD,EAAA;IAEjD,QAAA;;YAEE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;;IAEzC,aAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACtE;gBACA,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,SAAA;SACF;QAEO,gBAAgB,CACtB,WAAmB,EACnB,SAAiD,EAAA;YAEjD,QACE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;IAClC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EACpD;SACH;IAED,IAAA,MAAM,SAAS,CACb,MAAgB,EAChB,UAAoD,EAAA;;IAGpD,QAAA,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBACxB,IAAI,UAAU,KAAK,IAAI;IAAE,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,iBAAA;IACH,gBAAA,KAAK,IAAI,SAAS,IAAI,UAAU,EAAE;IAChC,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnC,iBAAA;IACF,aAAA;IACF,SAAA;SACF;QAEO,UAAU,CAChB,KAAa,EACb,SAAiD,EAAA;YAEjD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChD;IAED,IAAA,MAAM,WAAW,CACf,MAAgB,EAChB,UAAoD,EAAA;IAEpD,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;IACF;;ICnFD;;;;;;;;;;;;;;;IAeG;IAaH,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAsBhC;IACA,MAAM,wBAAwB,GAAG,iBAAiB,EAAE,CAAC;IAErD,CAAC,YAAW;QACV,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,sDAAsD,CAAC;IACnG,IAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC;IAEtC,IAAA,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IAChD,IAAA,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,IAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;;IAGlD,IAAA,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC;;;IAIpD,IAAA,gBAAgB,CAAC,GAAG,CAClB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,gBAAgB,CACjB,CAAC;;IAGF,IAAA,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAE7B,SAAS,CAAC,UAAU,CAAC,CAAC;QAEtB,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,GAAG,CAAC;IAEL,SAAS,oBAAoB,GAAA;;;IAG3B,IAAA,MAAM,kBAAkB,CAAA;YACd,UAAU,GAAuC,IAAI,CAAC;IAE9D,QAAA,WAAA,GAAA;gBACE,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,OAAe,KAAI;oBACzC,IAAI,IAAI,CAAC,UAAU,EAAE;wBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,iBAAA;IACH,aAAC,CAAC;aACH;IAED,QAAA,YAAY,CAAC,SAA6C,EAAA;IACxD,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;aAC7B;YAED,MAAM,WAAW,CAAC,OAAe,EAAA;IAC/B,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YAED,KAAK,GAAA;IACH,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,YAAA,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;aAC7B;IACF,KAAA;IAED,IAAA,OAAO,IAAI,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,iBAAiB,GAAA;IACxB,IAAA,MAAM,mBAAmB,CAAA;YACf,UAAU,GAAuC,IAAI,CAAC;IAE9D,QAAA,WAAA,GAAA;IACE,YAAA,MAAM,CAAC,aAAa,GAAG,CAAC,OAAe,KAAI;oBACzC,IAAI,IAAI,CAAC,UAAU,EAAE;wBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,iBAAA;IACH,aAAC,CAAC;aACH;IAED,QAAA,YAAY,CAAC,SAA6C,EAAA;IACxD,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;aAC7B;YAED,MAAM,WAAW,CAAC,OAAe,EAAA;IAC/B,YAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aAClC;YAED,KAAK,GAAA;IACH,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,YAAA,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;aAC7B;IACF,KAAA;IAED,IAAA,OAAO,IAAI,UAAU,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;IACA,eAAe,iBAAiB,GAAA;IAC9B,IAAA,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;IACnC,QAAA,MAAM,CAAC,eAAe,GAAG,UAAU,QAAQ,EAAA;IACzC,YAAA,SAAS,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;gBAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,SAAC,CAAC;IACJ,KAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,WAAW,CAAC,SAAoB,EAAA;;IAE7C,IAAA,MAAM,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;IAG9D,IAAA,MAAM,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,QAAA,UAAU,EAAE,IAAI;IAChB,QAAA,sBAAsB,EAAE,KAAK;IAC7B,QAAA,OAAO,EAAE,IAAI;IACd,KAAA,CAAC,CAAC;IACL;;;;;;"}
package/src/index.ts DELETED
@@ -1,110 +0,0 @@
1
- /**
2
- * Copyright 2021 Google LLC.
3
- * Copyright (c) Microsoft Corporation.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
-
18
- import argparse from 'argparse';
19
- import puppeteer, { PuppeteerNode } from 'puppeteer';
20
-
21
- import mapperReader from './mapperReader';
22
- import { MapperServer } from './mapperServer';
23
- import { BidiServerRunner } from './bidiServerRunner';
24
- import { ITransport } from './utils/transport';
25
-
26
- function parseArguments() {
27
- var parser = new argparse.ArgumentParser({
28
- add_help: true,
29
- exit_on_error: false,
30
- });
31
-
32
- parser.add_argument('-p', '--port', {
33
- help: 'Port that BiDi server should listen to. Default is 8080.',
34
- type: 'int',
35
- default: process.env.PORT || 8080,
36
- });
37
-
38
- parser.add_argument('-hl', '--headless', {
39
- help: 'Sets if browser should run in headless or headful mode. Default is `--headless=true`.',
40
- default: true,
41
- });
42
-
43
- // `parse_known_args` puts known args in the first element of the result.
44
- const args = parser.parse_known_args();
45
- return args[0];
46
- }
47
-
48
- (async () => {
49
- try {
50
- console.log('Launching BiDi server.');
51
-
52
- const args = parseArguments();
53
- const bidiPort = args.port;
54
- const headless = args.headless !== 'false';
55
-
56
- BidiServerRunner.run(bidiPort, (bidiServer) => {
57
- return _onNewBidiConnectionOpen(headless, bidiServer);
58
- });
59
- console.log('BiDi server launched.');
60
- } catch (e) {
61
- console.log('Error', e);
62
- }
63
- })();
64
-
65
- /**
66
- * On each new BiDi connection:
67
- * 1. Launch Chromium (using Puppeteer for now).
68
- * 2. Get `BiDi-CDP` mapper JS binaries using `mapperReader`.
69
- * 3. Run `BiDi-CDP` mapper in launched browser.
70
- * 4. Bind `BiDi-CDP` mapper to the `BiDi server`.
71
- *
72
- * @returns delegate to be called when the connection is closed
73
- */
74
- async function _onNewBidiConnectionOpen(
75
- headless: boolean,
76
- bidiTransport: ITransport
77
- ): Promise<() => void> {
78
- // 1. Launch Chromium (using Puppeteer for now).
79
- // Puppeteer should have downloaded Chromium during the installation.
80
- // Use Puppeteer's logic of launching browser as well.
81
- const browser = await (puppeteer as any as PuppeteerNode).launch({
82
- headless,
83
- });
84
-
85
- // 2. Get `BiDi-CDP` mapper JS binaries using `mapperReader`.
86
- const bidiMapperScript = await mapperReader();
87
-
88
- // 3. Run `BiDi-CDP` mapper in launched browser.
89
- const mapperServer = await MapperServer.create(
90
- browser.wsEndpoint(),
91
- bidiMapperScript
92
- );
93
-
94
- // 4. Bind `BiDi-CDP` mapper to the `BiDi server`.
95
- // Forward messages from BiDi Mapper to the client.
96
- mapperServer.setOnMessage(async (message) => {
97
- await bidiTransport.sendMessage(message);
98
- });
99
-
100
- // Forward messages from the client to BiDi Mapper.
101
- bidiTransport.setOnMessage(async (message) => {
102
- await mapperServer.sendMessage(message);
103
- });
104
-
105
- // Return delegate to be called when the connection is closed.
106
- return async () => {
107
- // Client disconnected. Close browser.
108
- await browser.close();
109
- };
110
- }