livekit-client 0.18.4-RC2 → 0.18.4-RC3

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.
@@ -0,0 +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","log.getLogger","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.util","_m0.configure","ConnectionQuality","Room","_m0.Writer","_m0.Reader","R","Reflect","ReflectApply","target","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","type","doError","error","er","context","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","state","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","arr","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","StreamState","ProtoStreamState","debounce","func","waitMilliseconds","options","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","forEach","cancel","reason","ProtoQuality","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","cb","wrappedCallback","modifiedEvent","handleEvent","_eventMap","Map","nativeRemoveEventListener","has","unwrappedCb","delete","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","browser","version","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","data","reduce","accumulator","isObj","isEmptyObject","assign","walkStats","stats","base","resultSet","id","endsWith","filterStats","track","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","mediaDevices","constraintsToChrome_","mandatory","optional","cc","r","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","constraints","JSON","parse","stringify","audio","remap","a","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","filter","d","kind","dev","find","some","label","includes","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","getUserMedia","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","stop","DOMException","shimGetDisplayMedia","getSourceId","getDisplayMedia","sourceId","widthSpecified","width","heightSpecified","height","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxWidth","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","event","Event","transceiver","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","origAddStream","addStream","origRemoveStream","removeStream","s","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","map","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","code","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","rid","parseFloat","scaleResolutionDownBy","maxFramerate","getParameters","encodings","setParameters","catch","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","all","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","iceServers","newIceServers","server","urls","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","direction","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","SDPUtils","generateIdentifier","random","substr","localCName","splitLines","blob","trim","split","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","protocol","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","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","user","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","toJSON","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","send","readyState","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"],"mappings":"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yI,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,EAEEtF,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8D,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,QAAlB,CAAA;AACH;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AACAR,IAAI,CAAChE,SAA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"}