livekit-client 0.18.4-RC7 → 0.18.4-RC8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\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.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\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 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\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\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\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 !== undefined) {\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 === undefined) {\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] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\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 onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\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 - 1; i >= 0; i--) {\n if (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 (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\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 var key;\n for (i = 0; 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 = Object.create(null);\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 !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\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 !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\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\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","LogLevel","livekitLogger","info","setLogLevel","setLogExtension","extension","originalFactory","logLevel","rawMethod","configLevel","needLog","silent","msg","context","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0","TrackType","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","TrackSource","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","VideoQuality","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","ConnectionQuality","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","connectionQualityToJSON","ClientConfigSetting","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","ParticipantInfo_State","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","participantInfo_StateToJSON","DataPacket_Kind","dataPacket_KindFromJSON","RELIABLE","LOSSY","dataPacket_KindToJSON","ClientInfo_SDK","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","clientInfo_SDKToJSON","createBaseRoom","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","metadata","numParticipants","activeRecording","Room","v","Codec","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","createBaseCodec","mime","fmtpLine","createBaseParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantPermission","createBaseParticipantInfo","identity","state","tracks","joinedAt","version","permission","region","isPublisher","ParticipantInfo","TrackInfo","createBaseTrackInfo","type","muted","width","height","simulcast","disableDtx","source","layers","mimeType","mid","VideoLayer","_l","_m","createBaseVideoLayer","quality","bitrate","ssrc","createBaseDataPacket","kind","user","speaker","DataPacket","UserPacket","ActiveSpeakerUpdate","createBaseActiveSpeakerUpdate","speakers","SpeakerInfo","createBaseSpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","base64FromBytes","createBaseParticipantTracks","trackSids","ParticipantTracks","createBaseClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","ClientInfo","createBaseClientConfiguration","video","screen","resumeConnection","ClientConfiguration","VideoConfiguration","createBaseVideoConfiguration","hardwareEncoder","atob","bin","arr","btoa","forEach","byte","MAX_SAFE_INTEGER","SignalTarget","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","StreamState","streamStateFromJSON","PAUSED","streamStateToJSON","createBaseSignalRequest","offer","answer","trickle","addTrack","mute","subscription","trackSetting","leave","updateLayers","subscriptionPermission","syncState","simulate","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","createBaseSignalResponse","update","trackPublished","speakersChanged","roomUpdate","connectionQuality","streamStateUpdate","subscribedQualityUpdate","subscriptionPermissionUpdate","refreshToken","trackUnpublished","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","createBaseAddTrackRequest","cid","createBaseTrickleRequest","candidateInit","target","createBaseMuteTrackRequest","createBaseJoinResponse","room","participant","otherParticipants","serverVersion","iceServers","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","ICEServer","createBaseTrackPublishedResponse","track","createBaseTrackUnpublishedResponse","trackSid","createBaseSessionDescription","sdp","createBaseParticipantUpdate","participants","createBaseUpdateSubscription","subscribe","participantTracks","createBaseUpdateTrackSettings","disabled","createBaseLeaveRequest","canReconnect","createBaseUpdateVideoLayers","createBaseICEServer","urls","username","credential","createBaseSpeakersChanged","createBaseRoomUpdate","createBaseConnectionQualityInfo","score","ConnectionQualityInfo","createBaseConnectionQualityUpdate","updates","createBaseStreamStateInfo","StreamStateInfo","createBaseStreamStateUpdate","streamStates","createBaseSubscribedQuality","enabled","SubscribedQuality","createBaseSubscribedQualityUpdate","subscribedQualities","createBaseTrackPermission","allTracks","participantIdentity","TrackPermission","createBaseSubscriptionPermission","allParticipants","trackPermissions","createBaseSubscriptionPermissionUpdate","allowed","createBaseSyncState","publishTracks","dataChannels","DataChannelInfo","createBaseDataChannelInfo","label","id","createBaseSimulateScenario","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","PublishDataError","MediaDeviceFailure","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","getInstance","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","isDummyDeviceOrEmpty","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","normalizeDeviceId","find","d","mediaDeviceKinds","protocolVersion","separator","unpackStreamId","packed","split","substr","sleep","duration","isFireFox","isWeb","isSafari","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","getClientInfo","emptyMediaStreamTrack","getEmptyMediaStreamTrack","canvas","createElement","emptyStream","captureStream","getTracks","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","parentElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","srcObject","MediaStream","existingTracks","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getDeviceId","setTrackMuted","unmute","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","pauseUpstream","UpstreamPaused","resumeUpstream","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","detectSilence","timeOffset","getNewAudioContext","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","startMonitor","getStats","audioStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","videoLayersFromEncodings","scale","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","REACTION_DELAY","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","qualityFromProto","ProtoQuality","Excellent","Good","Poor","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","trackPermissionToProto","perms","allowAll","allowedTrackSids","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","determineAppropriateEncoding","original","presets","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","midPreset","lowPreset","encodingsFromPresets","presetsForResolution","preset","aspect","abs","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Unsubscribed","NotAllowed","Subscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","isVideo","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","enableCameraAndMicrophone","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","senders","getSenders","LocalTrackUnpublished","unpublishTracks","publications","publishData","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","run","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","ridRegex","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","generateIdentifier","random","localCName","splitLines","blob","trim","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","passThroughQueueSignals","canPassThroughQueue","canPass","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","resp","fetch","ok","text","handleWSError","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","rsd","URLSearchParams","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxReconnectRetries","minReconnectWait","maxReconnectDuration","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","currentTarget","channelKind","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","startAudio","elements","switchActiveDevice","setSinkId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","trackPublication","localDescription","previousSdp","sendUnsub","autoManageVideo","publishAudio","publishVideo","errKind","audioErr","createLocalTracks","createLocalVideoTrack","createLocalAudioTrack","createLocalScreenTracks"],"mappings":"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F,CADtF,EACyF,GADzF,EAC8F,GAD9F,EACmG,GADnG,EACwG,CADxG,EAC2G,CAD3G,EAC8G,CAD9G,EACiH,GADjH,EACsH,GADtH,EAC2H,GAD3H,EACgI,EADhI,EACoI,GADpI,EACyI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEnG,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QA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"}
1
+ {"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/utf8/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/protobufjs/src/util/longbits.js","../node_modules/protobufjs/src/util/minimal.js","../node_modules/protobufjs/src/writer.js","../node_modules/protobufjs/src/writer_buffer.js","../node_modules/protobufjs/src/reader.js","../node_modules/protobufjs/src/reader_buffer.js","../node_modules/protobufjs/src/rpc/service.js","../node_modules/protobufjs/src/rpc.js","../node_modules/protobufjs/src/roots.js","../node_modules/protobufjs/src/index-minimal.js","../node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/webrtc-adapter/src/js/utils.js","../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/sdp/sdp.js","../node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\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.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\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 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\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\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\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 !== undefined) {\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 === undefined) {\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] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\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 onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\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 - 1; i >= 0; i--) {\n if (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 (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\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 var key;\n for (i = 0; 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 = Object.create(null);\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 !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\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 !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\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\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","LogLevel","livekitLogger","info","setLogLevel","setLogExtension","extension","originalFactory","logLevel","rawMethod","configLevel","needLog","silent","msg","context","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0","TrackType","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","TrackSource","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","VideoQuality","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","ConnectionQuality","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","connectionQualityToJSON","ClientConfigSetting","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","ParticipantInfo_State","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","participantInfo_StateToJSON","DataPacket_Kind","dataPacket_KindFromJSON","RELIABLE","LOSSY","dataPacket_KindToJSON","ClientInfo_SDK","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","clientInfo_SDKToJSON","createBaseRoom","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","metadata","numParticipants","activeRecording","Room","v","Codec","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","createBaseCodec","mime","fmtpLine","createBaseParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantPermission","createBaseParticipantInfo","identity","state","tracks","joinedAt","version","permission","region","isPublisher","ParticipantInfo","TrackInfo","createBaseTrackInfo","type","muted","width","height","simulcast","disableDtx","source","layers","mimeType","mid","VideoLayer","_l","_m","createBaseVideoLayer","quality","bitrate","ssrc","createBaseDataPacket","kind","user","speaker","DataPacket","UserPacket","ActiveSpeakerUpdate","createBaseActiveSpeakerUpdate","speakers","SpeakerInfo","createBaseSpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","base64FromBytes","createBaseParticipantTracks","trackSids","ParticipantTracks","createBaseClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","ClientInfo","createBaseClientConfiguration","video","screen","resumeConnection","ClientConfiguration","VideoConfiguration","createBaseVideoConfiguration","hardwareEncoder","atob","bin","arr","btoa","forEach","byte","MAX_SAFE_INTEGER","SignalTarget","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","StreamState","streamStateFromJSON","PAUSED","streamStateToJSON","createBaseSignalRequest","offer","answer","trickle","addTrack","mute","subscription","trackSetting","leave","updateLayers","subscriptionPermission","syncState","simulate","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","createBaseSignalResponse","update","trackPublished","speakersChanged","roomUpdate","connectionQuality","streamStateUpdate","subscribedQualityUpdate","subscriptionPermissionUpdate","refreshToken","trackUnpublished","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","createBaseAddTrackRequest","cid","createBaseTrickleRequest","candidateInit","target","createBaseMuteTrackRequest","createBaseJoinResponse","room","participant","otherParticipants","serverVersion","iceServers","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","ICEServer","createBaseTrackPublishedResponse","track","createBaseTrackUnpublishedResponse","trackSid","createBaseSessionDescription","sdp","createBaseParticipantUpdate","participants","createBaseUpdateSubscription","subscribe","participantTracks","createBaseUpdateTrackSettings","disabled","createBaseLeaveRequest","canReconnect","createBaseUpdateVideoLayers","createBaseICEServer","urls","username","credential","createBaseSpeakersChanged","createBaseRoomUpdate","createBaseConnectionQualityInfo","score","ConnectionQualityInfo","createBaseConnectionQualityUpdate","updates","createBaseStreamStateInfo","StreamStateInfo","createBaseStreamStateUpdate","streamStates","createBaseSubscribedQuality","enabled","SubscribedQuality","createBaseSubscribedQualityUpdate","subscribedQualities","createBaseTrackPermission","allTracks","participantIdentity","TrackPermission","createBaseSubscriptionPermission","allParticipants","trackPermissions","createBaseSubscriptionPermissionUpdate","allowed","createBaseSyncState","publishTracks","dataChannels","DataChannelInfo","createBaseDataChannelInfo","label","id","createBaseSimulateScenario","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","PublishDataError","MediaDeviceFailure","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","getInstance","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","isDummyDeviceOrEmpty","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","normalizeDeviceId","find","d","mediaDeviceKinds","protocolVersion","separator","unpackStreamId","packed","split","substr","sleep","duration","isFireFox","isWeb","isSafari","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","getClientInfo","emptyVideoStreamTrack","getEmptyVideoStreamTrack","canvas","createElement","getContext","fillRect","emptyStream","captureStream","getTracks","emptyAudioStreamTrack","getEmptyAudioStreamTrack","AudioContext","oscillator","createOscillator","createMediaStreamDestination","connect","stream","getAudioTracks","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","parentElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","srcObject","MediaStream","existingTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getDeviceId","setTrackMuted","unmute","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","pauseUpstream","UpstreamPaused","emptyTrack","resumeUpstream","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","detectSilence","timeOffset","getNewAudioContext","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","getByteTimeDomainData","someNoise","sample","close","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","startMonitor","getStats","audioStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","videoLayersFromEncodings","scale","RemoteTrack","streamState","setMuted","setMediaStream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","REACTION_DELAY","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","qualityFromProto","ProtoQuality","Excellent","Good","Poor","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","trackPermissionToProto","perms","allowAll","allowedTrackSids","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","determineAppropriateEncoding","original","presets","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","midPreset","lowPreset","encodingsFromPresets","presetsForResolution","preset","aspect","abs","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Unsubscribed","NotAllowed","Subscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","isVideo","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","enableCameraAndMicrophone","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","senders","getSenders","LocalTrackUnpublished","unpublishTracks","publications","publishData","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","run","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","ridRegex","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","generateIdentifier","random","localCName","splitLines","blob","trim","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","passThroughQueueSignals","canPassThroughQueue","canPass","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","resp","fetch","ok","text","handleWSError","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","rsd","URLSearchParams","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxReconnectRetries","minReconnectWait","maxReconnectDuration","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","currentTarget","channelKind","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","secondaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","startAudio","elements","switchActiveDevice","setSinkId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","trackPublication","localDescription","previousSdp","sendUnsub","autoManageVideo","publishAudio","publishVideo","errKind","audioErr","createLocalTracks","createLocalVideoTrack","createLocalAudioTrack","createLocalScreenTracks"],"mappings":"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F,CADtF,EACyF,GADzF,EAC8F,GAD9F,EACmG,GADnG,EACwG,CADxG,EAC2G,CAD3G,EAC8G,CAD9G,EACiH,GADjH,EACsH,GADtH,EAC2H,GAD3H,EACgI,EADhI,EACoI,GADpI,EACyI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEnG,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QA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"}