From 301f7762ef724229cd1df51e496eed8cfd2f10eb Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Tue, 24 Jan 2017 01:48:51 +0100 Subject: [PATCH] Fixed: Do not randomly remove slashes from comments, fixes #656 --- dist/light/protobuf.js | 2 +- dist/light/protobuf.min.js | 2 +- dist/light/protobuf.min.js.gz | Bin 15785 -> 15784 bytes dist/minimal/protobuf.js | 2 +- dist/minimal/protobuf.min.js | 2 +- dist/minimal/protobuf.min.js.gz | Bin 6290 -> 6290 bytes dist/protobuf.js | 4 ++-- dist/protobuf.js.map | 2 +- dist/protobuf.min.js | 4 ++-- dist/protobuf.min.js.gz | Bin 18924 -> 18925 bytes dist/protobuf.min.js.map | 2 +- src/tokenize.js | 2 +- tests/data/comments.proto | 2 +- tests/docs_comments.js | 2 +- 14 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dist/light/protobuf.js b/dist/light/protobuf.js index 29a9818cc..991069f1a 100644 --- a/dist/light/protobuf.js +++ b/dist/light/protobuf.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Tue, 24 Jan 2017 00:42:15 UTC + * Compiled Tue, 24 Jan 2017 00:47:58 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ diff --git a/dist/light/protobuf.min.js b/dist/light/protobuf.min.js index b384995eb..a563a8738 100644 --- a/dist/light/protobuf.min.js +++ b/dist/light/protobuf.min.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Tue, 24 Jan 2017 00:42:15 UTC + * Compiled Tue, 24 Jan 2017 00:47:58 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ diff --git a/dist/light/protobuf.min.js.gz b/dist/light/protobuf.min.js.gz index 353990e8af15a4c3188bbcfc002d51a37cf29129..20105e5e9b691c4a1f57b89e959131159faf575b 100644 GIT binary patch literal 15784 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 literal 15785 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 Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\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 string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\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 string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\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 = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\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.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(6);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\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 path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\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\";\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 i ? 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 = Class;\r\n\r\nvar Message = require(21),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction Class(type, ctor) {\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return c.call(this,p)\").eof(type.name, {\r\n c: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n (ctor.prototype = new Message()).constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n ctor.prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n var i = 0;\r\n for (; i < /* initializes */ type.fieldsArray.length; ++i) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n ctor.prototype[type._fieldsArray[i].name] = Array.isArray(type._fieldsArray[i].resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(type._fieldsArray[i].defaultValue) && !type._fieldsArray[i].long\r\n ? util.emptyObject\r\n : type._fieldsArray[i].defaultValue;\r\n }\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n var ctorProperties = {};\r\n for (i = 0; i < /* initializes */ type.oneofsArray.length; ++i)\r\n ctorProperties[type._oneofsArray[i].resolve().name] = {\r\n get: util.oneOfGetter(type._oneofsArray[i].oneof),\r\n set: util.oneOfSetter(type._oneofsArray[i].oneof)\r\n };\r\n if (i)\r\n Object.defineProperties(ctor.prototype, ctorProperties);\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return ctor.prototype;\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @function\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nClass.create = Class;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(d%s){\", prop);\r\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\r\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", keys[i])\r\n (\"case %j:\", values[keys[i]])\r\n (\"m%s=%j\", prop, values[keys[i]])\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray,\r\n oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n for (var j = 0; j < /* initializes */ oneof.fieldsArray.length; ++j) {\r\n var field = oneof._fieldsArray[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (values && !util.isObject(values))\r\n throw TypeError(\"values must be an object\");\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n if (values)\r\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\r\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\r\n}\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnum.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnum.prototype.add = function(name, id, comment) {\r\n // utilized by the parser but not by .fromJSON\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnum.prototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\r\n\r\nvar Enum = require(15),\r\n types = require(35),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(Field.prototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nField.prototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(14);\r\nprotobuf.decoder = require(13);\r\nprotobuf.verifier = require(39);\r\nprotobuf.converter = require(12);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(24);\r\nprotobuf.Namespace = require(23);\r\nprotobuf.Root = require(29);\r\nprotobuf.Enum = require(15);\r\nprotobuf.Type = require(34);\r\nprotobuf.Field = require(16);\r\nprotobuf.OneOf = require(25);\r\nprotobuf.MapField = require(20);\r\nprotobuf.Service = require(32);\r\nprotobuf.Method = require(22);\r\n\r\n// Runtime\r\nprotobuf.Class = require(10);\r\nprotobuf.Message = require(21);\r\n\r\n// Utility\r\nprotobuf.types = require(35);\r\nprotobuf.util = require(36);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(40);\r\nprotobuf.BufferWriter = require(41);\r\nprotobuf.Reader = require(27);\r\nprotobuf.BufferReader = require(28);\r\n\r\n// Utility\r\nprotobuf.util = require(38);\r\nprotobuf.rpc = require(30);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(17);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(33);\r\nprotobuf.parse = require(26);\r\nprotobuf.common = require(11);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(16);\r\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\r\n\r\nvar types = require(35),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return Field.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties)\r\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\r\n\r\nvar Type = require(34),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\r\n\r\nvar Enum = require(15),\r\n Field = require(16),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar initNestedTypes = function() {\r\n Type = require(34);\r\n Service = require(32);\r\n initNestedTypes = null;\r\n};\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespace.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\r\n nested = nestedJson[names[i]];\r\n ns.add( // most to least likely\r\n ( nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : nested.id !== undefined\r\n ? Field.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespace.prototype.get = function get(name) {\r\n return this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespace.prototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespace.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\r\n throw TypeError(\"object must be a valid nested object\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespace.prototype.remove = function remove(object) {\r\n\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n if (object.parent !== this)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespace.prototype.define = function define(path, json) {\r\n\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return this.resolve();\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespace.prototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespace.prototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespace.prototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\n\r\nvar util = require(36);\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\nObject.defineProperties(ReflectionObject.prototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(29);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObject.prototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\r\n this.setOption(keys[i], options[keys[i]], ifNotSet);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObject.prototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\r\n\r\nvar Field = require(16);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOf.prototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n for (var i = 0; i < oneof._fieldsArray.length; ++i)\r\n if (!oneof._fieldsArray[i].parent)\r\n oneof.parent.add(oneof._fieldsArray[i]);\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n for (var i = 0; i < this.oneof.length; ++i) {\r\n var field = parent.get(this.oneof[i]);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n }\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onRemove = function onRemove(parent) {\r\n for (var i = 0, field; i < this._fieldsArray.length; ++i)\r\n if ((field = this._fieldsArray[i]).parent)\r\n field.parent.remove(field);\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(33),\r\n Root = require(29),\r\n Type = require(34),\r\n Field = require(16),\r\n MapField = require(20),\r\n OneOf = require(25),\r\n Enum = require(15),\r\n Service = require(32),\r\n Method = require(22),\r\n types = require(35),\r\n util = require(36);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(38);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(28);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReader.prototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(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 /* istanbul ignore next */\r\n : function readFloat_f32_le(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 : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\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/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(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 /* istanbul ignore next */\r\n : function readDouble_f64_le(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 : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\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/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReader.prototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReader.prototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n Reader.prototype.int64 = read_int64_long;\r\n Reader.prototype.uint64 = read_uint64_long;\r\n Reader.prototype.sint64 = read_sint64_long;\r\n Reader.prototype.fixed64 = read_fixed64_long;\r\n Reader.prototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n Reader.prototype.int64 = read_int64_number;\r\n Reader.prototype.uint64 = read_uint64_number;\r\n Reader.prototype.sint64 = read_sint64_number;\r\n Reader.prototype.fixed64 = read_fixed64_number;\r\n Reader.prototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(27);\r\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReader.prototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\r\n\r\nvar Field = require(16),\r\n Enum = require(15),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n if (json.options)\r\n root.setOptions(json.options);\r\n return root.addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRoot.prototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options),\r\n i = 0;\r\n if (parsed.imports)\r\n for (; i < parsed.imports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.imports[i]));\r\n if (parsed.weakImports)\r\n for (i = 0; i < parsed.weakImports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.weakImports[i]), true);\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n for (var i = 0; i < filename.length; ++i)\r\n fetch(self.resolvePath(\"\", filename[i]));\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRoot.prototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRoot.prototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Root} root Root instance\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction tryHandleExtension(root, field) { \r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleAdd = function _handleAdd(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\r\n if (!tryHandleExtension(this, object))\r\n this.deferred.push(object);\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n } else /* everything else is a namespace */ {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (object instanceof Type) // Try to handle any deferred extensions\r\n for (var i = 0; i < this.deferred.length;)\r\n if (tryHandleExtension(this, this.deferred[i]))\r\n this.deferred.splice(i, 1);\r\n else\r\n ++i;\r\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\r\n this._handleAdd(object._nestedArray[j]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n }\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleRemove = function _handleRemove(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field */ object.extend !== undefined) {\r\n if (/* already handled */ object.extensionField) { // remove its sister field\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n } else { // cancel the extension\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n }\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n\r\n } else if (object instanceof Namespace) {\r\n\r\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\r\n this._handleRemove(object._nestedArray[i]);\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n\r\n }\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(31);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(38);\r\n\r\n// Extends EventEmitter\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\r\n\r\nvar Method = require(22),\r\n util = require(36),\r\n rpc = require(30);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\r\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Service.prototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.get = function get(name) {\r\n return this.methods[name]\r\n || Namespace.prototype.get.call(this, name);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n for (var i = 0; i < /* initializes */ this.methodsArray.length; ++i) {\r\n rpcService[util.lcFirst(this._methodsArray[i].resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(this._methodsArray[i].name), {\r\n m: this._methodsArray[i],\r\n q: this._methodsArray[i].resolvedRequestType.ctor,\r\n s: this._methodsArray[i].resolvedResponseType.ctor\r\n });\r\n }\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n var lines = source\r\n .substring(start, end)\r\n .split(/\\n/g);\r\n for (var i = 0; i < lines.length; ++i)\r\n lines[i] = lines[i].replace(/ *[*/]+ */, \"\").trim();\r\n commentText = lines\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\r\n\r\nvar Enum = require(15),\r\n OneOf = require(25),\r\n Field = require(16),\r\n MapField = require(20),\r\n Service = require(32),\r\n Class = require(10),\r\n Message = require(21),\r\n Reader = require(27),\r\n Writer = require(40),\r\n util = require(36),\r\n encoder = require(14),\r\n decoder = require(13),\r\n verifier = require(39),\r\n converter = require(12);\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n var names = Object.keys(json.fields),\r\n i = 0;\r\n for (; i < names.length; ++i)\r\n type.add(\r\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\r\n ? MapField.fromJSON\r\n : Field.fromJSON )(names[i], json.fields[names[i]])\r\n );\r\n if (json.oneofs)\r\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\r\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\r\n if (json.nested)\r\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\r\n var nested = json.nested[names[i]];\r\n type.add( // most to least likely\r\n ( nested.id !== undefined\r\n ? Field.fromJSON\r\n : nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(Type.prototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.get = function get(name) {\r\n return this.fields[name]\r\n || this.oneofs && this.oneofs[name]\r\n || this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nType.prototype.add = function add(object) {\r\n\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nType.prototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nType.prototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nType.prototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = [];\r\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\r\n types.push(this._fieldsArray[i].resolve().resolvedType);\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nType.prototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.from = Type.prototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nType.prototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(36);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(38);\r\n\r\nutil.codegen = require(3);\r\nutil.fetch = require(5);\r\nutil.path = require(7);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n var array = [];\r\n if (object)\r\n for (var keys = Object.keys(object), i = 0; i < keys.length; ++i)\r\n array.push(object[keys[i]]);\r\n return array;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (util.isString(value)) {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBits.prototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBits.prototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBits.prototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBits.prototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(6);\r\nutil.utf8 = require(9);\r\nutil.pool = require(8);\r\nutil.LongBits = require(37);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n fieldMap[fieldNames[i]] = 1;\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n for (var i = 0; i < lazyTypes.length; ++i) {\r\n for (var keys = Object.keys(lazyTypes[i]), j = 0; j < keys.length; ++j) {\r\n var path = lazyTypes[i][keys[j]].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n lazyTypes[i][keys[j]] = ptr;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.int64 = Writer.prototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (util.isString(value)) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriter.prototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(40);\r\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\r\n\r\nvar util = require(38);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\r\n if (util.isString(value))\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\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 string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\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 string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\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 = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\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.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(6);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\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 path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\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\";\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 i ? 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 = Class;\r\n\r\nvar Message = require(21),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction Class(type, ctor) {\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return c.call(this,p)\").eof(type.name, {\r\n c: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n (ctor.prototype = new Message()).constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n ctor.prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n var i = 0;\r\n for (; i < /* initializes */ type.fieldsArray.length; ++i) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n ctor.prototype[type._fieldsArray[i].name] = Array.isArray(type._fieldsArray[i].resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(type._fieldsArray[i].defaultValue) && !type._fieldsArray[i].long\r\n ? util.emptyObject\r\n : type._fieldsArray[i].defaultValue;\r\n }\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n var ctorProperties = {};\r\n for (i = 0; i < /* initializes */ type.oneofsArray.length; ++i)\r\n ctorProperties[type._oneofsArray[i].resolve().name] = {\r\n get: util.oneOfGetter(type._oneofsArray[i].oneof),\r\n set: util.oneOfSetter(type._oneofsArray[i].oneof)\r\n };\r\n if (i)\r\n Object.defineProperties(ctor.prototype, ctorProperties);\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return ctor.prototype;\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @function\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nClass.create = Class;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(d%s){\", prop);\r\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\r\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", keys[i])\r\n (\"case %j:\", values[keys[i]])\r\n (\"m%s=%j\", prop, values[keys[i]])\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray,\r\n oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n for (var j = 0; j < /* initializes */ oneof.fieldsArray.length; ++j) {\r\n var field = oneof._fieldsArray[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (values && !util.isObject(values))\r\n throw TypeError(\"values must be an object\");\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n if (values)\r\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\r\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\r\n}\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnum.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnum.prototype.add = function(name, id, comment) {\r\n // utilized by the parser but not by .fromJSON\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnum.prototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\r\n\r\nvar Enum = require(15),\r\n types = require(35),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(Field.prototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nField.prototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(14);\r\nprotobuf.decoder = require(13);\r\nprotobuf.verifier = require(39);\r\nprotobuf.converter = require(12);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(24);\r\nprotobuf.Namespace = require(23);\r\nprotobuf.Root = require(29);\r\nprotobuf.Enum = require(15);\r\nprotobuf.Type = require(34);\r\nprotobuf.Field = require(16);\r\nprotobuf.OneOf = require(25);\r\nprotobuf.MapField = require(20);\r\nprotobuf.Service = require(32);\r\nprotobuf.Method = require(22);\r\n\r\n// Runtime\r\nprotobuf.Class = require(10);\r\nprotobuf.Message = require(21);\r\n\r\n// Utility\r\nprotobuf.types = require(35);\r\nprotobuf.util = require(36);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(40);\r\nprotobuf.BufferWriter = require(41);\r\nprotobuf.Reader = require(27);\r\nprotobuf.BufferReader = require(28);\r\n\r\n// Utility\r\nprotobuf.util = require(38);\r\nprotobuf.rpc = require(30);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(17);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(33);\r\nprotobuf.parse = require(26);\r\nprotobuf.common = require(11);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(16);\r\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\r\n\r\nvar types = require(35),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return Field.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties)\r\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\r\n\r\nvar Type = require(34),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\r\n\r\nvar Enum = require(15),\r\n Field = require(16),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar initNestedTypes = function() {\r\n Type = require(34);\r\n Service = require(32);\r\n initNestedTypes = null;\r\n};\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespace.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\r\n nested = nestedJson[names[i]];\r\n ns.add( // most to least likely\r\n ( nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : nested.id !== undefined\r\n ? Field.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespace.prototype.get = function get(name) {\r\n return this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespace.prototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespace.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\r\n throw TypeError(\"object must be a valid nested object\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespace.prototype.remove = function remove(object) {\r\n\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n if (object.parent !== this)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespace.prototype.define = function define(path, json) {\r\n\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return this.resolve();\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespace.prototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespace.prototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespace.prototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\n\r\nvar util = require(36);\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\nObject.defineProperties(ReflectionObject.prototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(29);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObject.prototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\r\n this.setOption(keys[i], options[keys[i]], ifNotSet);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObject.prototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\r\n\r\nvar Field = require(16);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOf.prototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n for (var i = 0; i < oneof._fieldsArray.length; ++i)\r\n if (!oneof._fieldsArray[i].parent)\r\n oneof.parent.add(oneof._fieldsArray[i]);\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n for (var i = 0; i < this.oneof.length; ++i) {\r\n var field = parent.get(this.oneof[i]);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n }\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onRemove = function onRemove(parent) {\r\n for (var i = 0, field; i < this._fieldsArray.length; ++i)\r\n if ((field = this._fieldsArray[i]).parent)\r\n field.parent.remove(field);\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(33),\r\n Root = require(29),\r\n Type = require(34),\r\n Field = require(16),\r\n MapField = require(20),\r\n OneOf = require(25),\r\n Enum = require(15),\r\n Service = require(32),\r\n Method = require(22),\r\n types = require(35),\r\n util = require(36);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(38);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(28);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReader.prototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(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 /* istanbul ignore next */\r\n : function readFloat_f32_le(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 : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\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/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(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 /* istanbul ignore next */\r\n : function readDouble_f64_le(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 : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\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/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReader.prototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReader.prototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n Reader.prototype.int64 = read_int64_long;\r\n Reader.prototype.uint64 = read_uint64_long;\r\n Reader.prototype.sint64 = read_sint64_long;\r\n Reader.prototype.fixed64 = read_fixed64_long;\r\n Reader.prototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n Reader.prototype.int64 = read_int64_number;\r\n Reader.prototype.uint64 = read_uint64_number;\r\n Reader.prototype.sint64 = read_sint64_number;\r\n Reader.prototype.fixed64 = read_fixed64_number;\r\n Reader.prototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(27);\r\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReader.prototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\r\n\r\nvar Field = require(16),\r\n Enum = require(15),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n if (json.options)\r\n root.setOptions(json.options);\r\n return root.addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRoot.prototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options),\r\n i = 0;\r\n if (parsed.imports)\r\n for (; i < parsed.imports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.imports[i]));\r\n if (parsed.weakImports)\r\n for (i = 0; i < parsed.weakImports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.weakImports[i]), true);\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n for (var i = 0; i < filename.length; ++i)\r\n fetch(self.resolvePath(\"\", filename[i]));\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRoot.prototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRoot.prototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Root} root Root instance\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction tryHandleExtension(root, field) { \r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleAdd = function _handleAdd(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\r\n if (!tryHandleExtension(this, object))\r\n this.deferred.push(object);\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n } else /* everything else is a namespace */ {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (object instanceof Type) // Try to handle any deferred extensions\r\n for (var i = 0; i < this.deferred.length;)\r\n if (tryHandleExtension(this, this.deferred[i]))\r\n this.deferred.splice(i, 1);\r\n else\r\n ++i;\r\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\r\n this._handleAdd(object._nestedArray[j]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n }\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleRemove = function _handleRemove(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field */ object.extend !== undefined) {\r\n if (/* already handled */ object.extensionField) { // remove its sister field\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n } else { // cancel the extension\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n }\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n\r\n } else if (object instanceof Namespace) {\r\n\r\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\r\n this._handleRemove(object._nestedArray[i]);\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n\r\n }\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(31);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(38);\r\n\r\n// Extends EventEmitter\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\r\n\r\nvar Method = require(22),\r\n util = require(36),\r\n rpc = require(30);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\r\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Service.prototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.get = function get(name) {\r\n return this.methods[name]\r\n || Namespace.prototype.get.call(this, name);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n for (var i = 0; i < /* initializes */ this.methodsArray.length; ++i) {\r\n rpcService[util.lcFirst(this._methodsArray[i].resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(this._methodsArray[i].name), {\r\n m: this._methodsArray[i],\r\n q: this._methodsArray[i].resolvedRequestType.ctor,\r\n s: this._methodsArray[i].resolvedResponseType.ctor\r\n });\r\n }\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n var lines = source\r\n .substring(start, end)\r\n .split(/\\n/g);\r\n for (var i = 0; i < lines.length; ++i)\r\n lines[i] = lines[i].replace(/^ *[*/]+ */, \"\").trim();\r\n commentText = lines\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\r\n\r\nvar Enum = require(15),\r\n OneOf = require(25),\r\n Field = require(16),\r\n MapField = require(20),\r\n Service = require(32),\r\n Class = require(10),\r\n Message = require(21),\r\n Reader = require(27),\r\n Writer = require(40),\r\n util = require(36),\r\n encoder = require(14),\r\n decoder = require(13),\r\n verifier = require(39),\r\n converter = require(12);\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n var names = Object.keys(json.fields),\r\n i = 0;\r\n for (; i < names.length; ++i)\r\n type.add(\r\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\r\n ? MapField.fromJSON\r\n : Field.fromJSON )(names[i], json.fields[names[i]])\r\n );\r\n if (json.oneofs)\r\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\r\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\r\n if (json.nested)\r\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\r\n var nested = json.nested[names[i]];\r\n type.add( // most to least likely\r\n ( nested.id !== undefined\r\n ? Field.fromJSON\r\n : nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(Type.prototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.get = function get(name) {\r\n return this.fields[name]\r\n || this.oneofs && this.oneofs[name]\r\n || this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nType.prototype.add = function add(object) {\r\n\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nType.prototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nType.prototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nType.prototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = [];\r\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\r\n types.push(this._fieldsArray[i].resolve().resolvedType);\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nType.prototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.from = Type.prototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nType.prototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(36);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(38);\r\n\r\nutil.codegen = require(3);\r\nutil.fetch = require(5);\r\nutil.path = require(7);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n var array = [];\r\n if (object)\r\n for (var keys = Object.keys(object), i = 0; i < keys.length; ++i)\r\n array.push(object[keys[i]]);\r\n return array;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (util.isString(value)) {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBits.prototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBits.prototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBits.prototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBits.prototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(6);\r\nutil.utf8 = require(9);\r\nutil.pool = require(8);\r\nutil.LongBits = require(37);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n fieldMap[fieldNames[i]] = 1;\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n for (var i = 0; i < lazyTypes.length; ++i) {\r\n for (var keys = Object.keys(lazyTypes[i]), j = 0; j < keys.length; ++j) {\r\n var path = lazyTypes[i][keys[j]].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n lazyTypes[i][keys[j]] = ptr;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.int64 = Writer.prototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (util.isString(value)) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriter.prototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(40);\r\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\r\n\r\nvar util = require(38);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\r\n if (util.isString(value))\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/protobuf.min.js b/dist/protobuf.min.js index bca4d6bae..5b1543d39 100644 --- a/dist/protobuf.min.js +++ b/dist/protobuf.min.js @@ -1,10 +1,10 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Tue, 24 Jan 2017 00:42:15 UTC + * Compiled Tue, 24 Jan 2017 00:47:58 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ !function(t,e){"use strict";!function t(e,r,n){function o(s,u){if(!r[s]){if(!e[s]){var a="function"==typeof require&&require;if(!u&&a)return a(s,!0);if(i)return i(s,!0);var f=Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var l=r[s]={exports:{}};e[s][0].call(l.exports,function(t){var r=e[s][1][t];return o(r?r:t)},l,l.exports,t,e,r,n)}return r[s].exports}for(var i="function"==typeof require&&require,s=0;s1&&"="===t.charAt(e);)++r;return Math.ceil(3*t.length)/4-r};for(var i=Array(64),s=Array(123),u=0;u<64;)s[i[u]=u<26?u+65:u<52?u+71:u<62?u-4:u-59|43]=u++;o.encode=function(t,e,r){for(var n,o=[],s=0,u=0;e>2],n=(3&a)<<4,u=1;break;case 1:o[s++]=i[n|a>>4],n=(15&a)<<2,u=2;break;case 2:o[s++]=i[n|a>>6],o[s++]=i[63&a],u=0}}return u&&(o[s++]=i[n],o[s]=61,1===u&&(o[s+1]=61)),String.fromCharCode.apply(String,o)};var a="invalid encoding";o.decode=function(t,r,n){for(var o,i=n,u=0,f=0;f1)break;if((l=s[l])===e)throw Error(a);switch(u){case 0:o=l,u=1;break;case 1:r[n++]=o<<2|(48&l)>>4,o=l,u=2;break;case 2:r[n++]=(15&o)<<4|(60&l)>>2,o=l,u=3;break;case 3:r[n++]=(3&o)<<6|l,u=0}}if(1===u)throw Error(a);return n-i},o.test=function(t){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(t)}},{}],3:[function(t,r){function n(){function t(){for(var e=[],r=0;r ").replace(/\t/g," "));var s=Object.keys(o||(o={}));return Function.apply(null,s.concat("return "+i)).apply(null,s.map(function(t){return o[t]}))}for(var p=[],h=[],c=1,d=!1,y=0;y0?e.splice(--i,2):r?e.splice(i,1):++i:"."===e[i]?e.splice(i,1):++i;return n+e.join("/")};n.resolve=function(t,e,r){return r||(e=i(e)),o(e)?e:(r||(t=i(t)),(t=t.replace(/(?:\/|^)[^\/]+$/,"")).length?i(t+"/"+e):e)}},{}],8:[function(t,e){function r(t,e,r){var n=r||8192,o=n>>>1,i=null,s=n;return function(r){if(r<1||r>o)return t(r);s+r>n&&(i=t(n),s=0);var u=e.call(i,s,s+=r);return 7&s&&(s=(7|s)+1),u}}e.exports=r},{}],9:[function(t,e,r){var n=r;n.length=function(t){for(var e=0,r=0,n=0;n191&&o<224?s[u++]=(31&o)<<6|63&t[e++]:o>239&&o<365?(o=((7&o)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,s[u++]=55296+(o>>10),s[u++]=56320+(1023&o)):s[u++]=(15&o)<<12|(63&t[e++])<<6|63&t[e++],u>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),u=0);return i?(u&&i.push(String.fromCharCode.apply(String,s.slice(0,u))),i.join("")):u?String.fromCharCode.apply(String,s.slice(0,u)):""},n.write=function(t,e,r){for(var n,o,i=r,s=0;s>6|192,e[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(o=t.charCodeAt(s+1)))?(n=65536+((1023&n)<<10)+(1023&o),++s,e[r++]=n>>18|240,e[r++]=n>>12&63|128,e[r++]=n>>6&63|128,e[r++]=63&n|128):(e[r++]=n>>12|224,e[r++]=n>>6&63|128,e[r++]=63&n|128);return r-i}},{}],10:[function(t,e){function r(e,s){if(n||(n=t(34)),!(e instanceof n))throw TypeError("type must be a Type");if(s){if("function"!=typeof s)throw TypeError("ctor must be a function")}else s=i.codegen("p")("return c.call(this,p)").eof(e.name,{c:o});s.constructor=r,(s.prototype=new o).constructor=s,i.merge(s,o,!0),s.$type=e,s.prototype.$type=e;for(var u=0;u>>0",n,n);break;case"int32":case"sint32":case"sfixed32":t("m%s=d%s|0",n,n);break;case"uint64":a=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,a)('else if(typeof d%s==="string")',n)("m%s=parseInt(d%s,10)",n,n)('else if(typeof d%s==="number")',n)("m%s=d%s",n,n)('else if(typeof d%s==="object")',n)("m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)",n,n,n,a?"true":"");break;case"bytes":t('if(typeof d%s==="string")',n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length)",n)("m%s=d%s",n,n);break;case"string":t("m%s=String(d%s)",n,n);break;case"bool":t("m%s=Boolean(d%s)",n,n)}}return t}function o(t,e,r,n){if(e.resolvedType)e.resolvedType instanceof s?t("d%s=o.enums===String?types[%d].values[m%s]:m%s",n,r,n,n):t("d%s=types[%d].toObject(m%s,o)",n,r,n);else{var o=!1;switch(e.type){case"uint64":o=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":t('if(typeof m%s==="number")',n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low,m%s.high).toNumber(%s):m%s",n,n,n,n,o?"true":"",n);break;case"bytes":t("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:t("d%s=m%s",n,n)}}return t}var i=r,s=t(15),u=t(36);i.fromObject=function(t){var e=t.fieldsArray,r=u.codegen("d")("if(d instanceof this.ctor)")("return d");if(!e.length)return r("return new this.ctor");r("var m=new this.ctor");for(var o=0;o>>3){");for(var a=0;a>>0,(e.id<<3|4)>>>0):t("types[%d].encode(%s,w.uint32(%d).fork()).ldelim()",r,n,(e.id<<3|2)>>>0)}function o(t){for(var r,o,a=t.fieldsArray,f=t.oneofsArray,l=u.codegen("m","w")("if(!w)")("w=Writer.create()"),r=0;r>>0,8|s.mapKey[p.keyType],p.keyType),c===e?l("types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",r,o):l(".uint32(%d).%s(%s[ks[i]]).ldelim()",16|c,h,o),l("}")("}")):p.repeated?p.packed&&s.packed[h]!==e?l("if(%s&&%s.length&&m.hasOwnProperty(%j)){",o,o,p.name)("w.uint32(%d).fork()",(p.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",o)("w.%s(%s[i])",h,o)("w.ldelim()")("}"):(l("if(%s!==undefined&&m.hasOwnProperty(%j)){",o,p.name)("for(var i=0;i<%s.length;++i)",o),c===e?n(l,p,r,o+"[i]"):l("w.uint32(%d).%s(%s[i])",(p.id<<3|c)>>>0,h,o),l("}")):(p.required||(p.long?l("if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))",o,o,p.name):p.bytes?l("if(%s&&m.hasOwnProperty(%j))",o,p.name):l("if(%s!==undefined&&m.hasOwnProperty(%j))",o,p.name)),c===e?n(l,p,r,o):l("w.uint32(%d).%s(%s)",(p.id<<3|c)>>>0,h,o))}}for(var r=0;r>>0,h,o),l("break")}l("}")}return l("return w")}r.exports=o;var i=t(15),s=t(35),u=t(36)},{15:15,35:35,36:36}],15:[function(t,r){function n(t,e,r){if(o.call(this,t,r),e&&!i.isObject(e))throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comments={},e)for(var n=Object.keys(e),s=0;s0;){var n=t.shift();if(r.nested&&r.nested[n]){if(r=r.nested[n],!(r instanceof o))throw Error("path conflicts with non-namespace objects")}else r.add(r=new o(n))}return e&&r.addJSON(e),r},o.prototype.resolveAll=function(){for(var t=this.nestedArray,e=0;e-1&&this.oneof.splice(e,1),t.partOf=null,this},n.prototype.onAdd=function(t){i.prototype.onAdd.call(this,t);for(var e=this,r=0;r");var s=X();if(!n(s))throw O(s,"name");s=it(s),tt("=");var u=new c(s,A(X()),r,i),a=G.line();u.comment=et(),R(u),u.comment||(u.comment=et(a)),t.add(u)}function q(t,e){var r=X();if(!n(r))throw O(r,"name");r=it(r);var o=new d(r),i=G.line();if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());)"option"===e?($(o,e),tt(";")):(Q(e),L(o,"optional"));tt(";",!0)}else tt(";"),o.comment||(o.comment=et(i));t.add(o)}function B(t,e){var r=X();if(!n(r))throw O(r,"name");var o=new y(r);if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());)"option"===s(e)?($(o,e),tt(";")):F(o,e);tt(";",!0)}else tt(";");t.add(o)}function F(t,e){if(!n(e))throw O(e,"name");var r=e;tt("=");var o=A(X(),!0),i=G.line();t.add(r,o,et()),R({}),t.comments[r]||(t.comments[r]=et(i))}function $(t,e){var r=tt("(",!0),n=X();if(!o(n))throw O(n,"name");r&&(tt(")"),n="("+n+")",e=Y(),i(e)&&(n+=e,X())),tt("="),V(t,n)}function V(t,e){if(tt("{",!0)){do{if(!n(K=X()))throw O(K,"name");"{"===Y()?V(t,e+"."+K):(tt(":"),P(t,e+"."+K,j(!0)))}while(!tt("}",!0))}else P(t,e,j(!0))}function P(t,e,r){t.setOption&&t.setOption(e,r)}function R(t){if(tt("[",!0)){do $(t,"option");while(tt(",",!0));tt("]")}return tt(";"),t}function C(t,e){if(e=X(),!n(e))throw O(e,"service name");var r=e,o=new m(r);if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());){var i=s(e);switch(i){case"option":$(o,i),tt(";");break;case"rpc":M(o,i);break;default:throw O(e)}}tt(";",!0)}else tt(";");t.add(o)}function M(t,e){var r=e,i=X();if(!n(i))throw O(i,"name");var u,a,f,l;if(tt("("),tt("stream",!0)&&(a=!0),!o(e=X()))throw O(e);if(u=e,tt(")"),tt("returns"),tt("("),tt("stream",!0)&&(l=!0),!o(e=X()))throw O(e);f=e,tt(")");var p=new v(i,r,u,f,a,l),h=G.line();if(p.comment=et(),tt("{",!0)){for(;"}"!==(e=X());){var c=s(e);switch(c){case"option":$(p,c),tt(";");break;default:throw O(e)}}tt(";",!0)}else tt(";"),p.comment||(p.comment=et(h));t.add(p)}function U(t,e){var r=X();if(!o(r))throw O(r,"reference");if(tt("{",!0)){for(;"}"!==(e=X());){var n=s(e);switch(n){case"required":case"repeated":case"optional":L(t,n,r);break;default:if(!nt||!o(e))throw O(e);Q(e),L(t,"optional",r)}}tt(";",!0)}else tt(";")}r instanceof l||(w=r,r=new l),w||(w=a.defaults);for(var H,_,Z,W,K,G=f(t),X=G.next,Q=G.push,Y=G.peek,tt=G.skip,et=G.cmnt,rt=!0,nt=!1,ot=r,it=w.keepCase?function(t){return t}:u;null!==(K=X());){var st=s(K);switch(st){case"package":if(!rt)throw O(K);T();break;case"import":if(!rt)throw O(K);N();break;case"syntax":if(!rt)throw O(K);E();break;case"option":if(!rt)throw O(K);$(ot,K),tt(";");break;default:if(D(ot,K)){rt=!1;continue}throw O(K)}}return a.filename=null,{package:H,imports:_,weakImports:Z,syntax:W,root:r}}r.exports=a,a.filename=null,a.defaults={keepCase:!1};var f=t(33),l=t(29),p=t(34),h=t(16),c=t(20),d=t(25),y=t(15),m=t(32),v=t(22),g=t(35),b=t(36)},{15:15,16:16,20:20,22:22,25:25,29:29,32:32,33:33,34:34,35:35,36:36}],27:[function(t,e){function r(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function n(t){this.buf=t,this.pos=0,this.len=t.length}function o(){var t=new w(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*e)>>>0,t}for(;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw r(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function i(){return o.call(this).toLong()}function s(){return o.call(this).toNumber()}function u(){return o.call(this).toLong(!0)}function a(){return o.call(this).toNumber(!0)}function f(){return o.call(this).zzDecode().toLong()}function l(){return o.call(this).zzDecode().toNumber()}function p(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw r(this,8);return new w(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}function c(){return h.call(this).toLong(!0)}function d(){return h.call(this).toNumber(!0)}function y(){return h.call(this).zzDecode().toLong()}function m(){return h.call(this).zzDecode().toNumber()}function v(){b.Long?(n.prototype.int64=i,n.prototype.uint64=u,n.prototype.sint64=f,n.prototype.fixed64=c,n.prototype.sfixed64=y):(n.prototype.int64=s,n.prototype.uint64=a,n.prototype.sint64=l,n.prototype.fixed64=d,n.prototype.sfixed64=m)}e.exports=n;var g,b=t(38),w=b.LongBits,O=b.utf8;n.create=b.Buffer?function(e){return g||(g=t(28)),(n.create=function(t){return b.Buffer.isBuffer(t)?new g(t):new n(t)})(e)}:function(t){return new n(t)},n.prototype.j=b.Array.prototype.subarray||b.Array.prototype.slice,n.prototype.uint32=function(){var t=4294967295;return function(){if(t=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return t}}(),n.prototype.int32=function(){return 0|this.uint32()},n.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},n.prototype.bool=function(){return 0!==this.uint32()},n.prototype.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return p(this.buf,this.pos+=4)},n.prototype.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var k="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],t[0]}:function(r,n){return e[3]=r[n],e[2]=r[n+1],e[1]=r[n+2],e[0]=r[n+3],t[0]}}():function(t,e){var r=p(t,e+4),n=2*(r>>31)+1,o=r>>>23&255,i=8388607&r;return 255===o?i?NaN:n*(1/0):0===o?1.401298464324817e-45*n*i:n*Math.pow(2,o-150)*(i+8388608)};n.prototype.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=k(this.buf,this.pos);return this.pos+=4,t};var j="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],e[4]=r[n+4],e[5]=r[n+5],e[6]=r[n+6],e[7]=r[n+7],t[0]}:function(r,n){return e[7]=r[n],e[6]=r[n+1],e[5]=r[n+2],e[4]=r[n+3],e[3]=r[n+4],e[2]=r[n+5],e[1]=r[n+6],e[0]=r[n+7],t[0]}}():function(t,e){var r=p(t,e+4),n=p(t,e+8),o=2*(n>>31)+1,i=n>>>20&2047,s=4294967296*(1048575&n)+r;return 2047===i?s?NaN:o*(1/0):0===i?5e-324*o*s:o*Math.pow(2,i-1075)*(s+4503599627370496)};n.prototype.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=j(this.buf,this.pos);return this.pos+=8,t},n.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,e===n?new this.buf.constructor(0):this.j.call(this.buf,e,n)},n.prototype.string=function(){var t=this.bytes();return O.read(t,0,t.length)},n.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw r(this,t);this.pos+=t}else do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++]);return this},n.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4===(t=7&this.uint32()))break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},n.f=v,v()},{28:28,38:38}],28:[function(t,e){function r(t){n.call(this,t)}e.exports=r;var n=t(27);(r.prototype=Object.create(n.prototype)).constructor=r;var o=t(38);o.Buffer&&(r.prototype.j=o.Buffer.prototype.slice),r.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len))}},{27:27,38:38}],29:[function(t,r){function n(t){s.call(this,"",t),this.deferred=[],this.files=[]}function o(){}function i(t,r){var n=r.parent.lookup(r.extend);if(n){var o=new l(r.fullName,r.id,r.type,r.rule,e,r.options);return o.declaringField=r,r.extensionField=o,n.add(o),!0}return!1}r.exports=n;var s=t(23);((n.prototype=Object.create(s.prototype)).constructor=n).className="Root";var u,a,f,l=t(16),p=t(15),h=t(36);n.fromJSON=function(t,e){return e||(e=new n),t.options&&e.setOptions(t.options),e.addJSON(t.nested)},n.prototype.resolvePath=h.path.resolve,n.prototype.load=function t(r,n,i){function s(t,e){if(i){var r=i;if(i=null,c)throw t;r(t,e)}}function u(t,e){try{if(h.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),h.isString(e)){a.filename=t;var r=a(e,p,n),o=0;if(r.imports)for(;o-1){var o=t.substring(n);o in f&&(t=o)}if(!(p.files.indexOf(t)>-1)){if(p.files.push(t),t in f)return c?u(t,f[t]):(++d,setTimeout(function(){--d,u(t,f[t])})),e;if(c){var a;try{a=h.fs.readFileSync(t).toString("utf8")}catch(t){return r||s(t),e}u(t,a)}else++d,h.fetch(t,function(n,o){if(--d,i)return n?(r?d||s(null,p):s(n),e):(u(t,o),e)})}}"function"==typeof n&&(i=n,n=e);var p=this;if(!i)return h.asPromise(t,p,r);var c=i===o,d=0;h.isString(r)&&(r=[r]);for(var y=0;y-1&&this.deferred.splice(r,1)}}else if(t instanceof p)c.test(t.name)&&delete t.parent[t.name];else if(t instanceof s){for(var n=0;n0)return w.shift();if(O)return o();var e,n,s,u,l;do{if(d===y)return null;for(e=!1;/\s/.test(s=a(d));)if("\n"===s&&++m,++d===y)return null;if("/"===a(d)){if(++d===y)throw r("comment");if("/"===a(d)){for(l="/"===a(u=d+1);"\n"!==a(++d);)if(d===y)return null;++d,l&&f(u,d-1),++m,e=!0}else{if("*"!==(s=a(d)))return"/";l="*"===a(u=d+1);do{if("\n"===s&&++m,++d===y)throw r("comment");n=s,s=a(d)}while("*"!==n||"/"!==s);++d,l&&f(u,d-2),e=!0}}}while(e);var p=d;i.lastIndex=0;var h=i.test(a(p++));if(!h)for(;p]/g,s=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g;n.map={0:"\0",r:"\r",n:"\n",t:"\t"},o.unescape=n},{}],34:[function(t,r){function n(t,r){i.call(this,t,r),this.fields={},this.oneofs=e,this.extensions=e,this.reserved=e,this.group=e,this.l=null,this.b=null,this.d=null,this.o=null}function o(t){return t.l=t.b=t.d=t.o=null,delete t.encode,delete t.decode,delete t.verify,t}r.exports=n;var i=t(23);((n.prototype=Object.create(i.prototype)).constructor=n).className="Type";var s=t(15),u=t(25),a=t(16),f=t(20),l=t(32),p=t(10),h=t(21),c=t(27),d=t(40),y=t(36),m=t(14),v=t(13),g=t(39),b=t(12);n.fromJSON=function(t,r){var o=new n(t,r.options);o.extensions=r.extensions,o.reserved=r.reserved;for(var p=Object.keys(r.fields),h=0;h>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(t){if("number"==typeof t)return r.fromNumber(t);if(n.isString(t)){if(!n.Long)return r.fromNumber(parseInt(t,10));t=n.Long.fromString(t)}return t.low||t.high?new r(t.low>>>0,t.high>>>0):o},r.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,r=~this.hi>>>0;return e||(r=r+1>>>0),-(e+4294967296*r)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(t){return n.Long?new n.Long(0|this.lo,0|this.hi,(!!t)):{low:0|this.lo,high:0|this.hi,unsigned:!!t}};var s=String.prototype.charCodeAt;r.fromHash=function(t){return t===i?o:new r((s.call(t,0)|s.call(t,1)<<8|s.call(t,2)<<16|s.call(t,3)<<24)>>>0,(s.call(t,4)|s.call(t,5)<<8|s.call(t,6)<<16|s.call(t,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},r.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},r.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===e?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:r<128?9:10}},{38:38}],38:[function(r,n,o){var i=o;i.asPromise=r(1),i.base64=r(2),i.EventEmitter=r(4),i.inquire=r(6),i.utf8=r(9),i.pool=r(8),i.LongBits=r(37),i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isNode=!!(t.process&&t.process.versions&&t.process.versions.node),i.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},i.isString=function(t){return"string"==typeof t||t instanceof String},i.isObject=function(t){return t&&"object"==typeof t},i.Buffer=function(){try{var t=i.inquire("buffer").Buffer;return t.prototype.utf8Write?(t.from||(t.from=function(e,r){return new t(e,r)}),t.allocUnsafe||(t.allocUnsafe=function(e){return new t(e)}),t):null}catch(t){return null}}(),i.newBuffer=function(t){return"number"==typeof t?i.Buffer?i.Buffer.allocUnsafe(t):new i.Array(t):i.Buffer?i.Buffer.from(t):"undefined"==typeof Uint8Array?t:new Uint8Array(t)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=t.dcodeIO&&t.dcodeIO.Long||i.inquire("long"),i.longToHash=function(t){return t?i.LongBits.from(t).toHash():i.LongBits.zeroHash},i.longFromHash=function(t,e){var r=i.LongBits.fromHash(t);return i.Long?i.Long.fromBits(r.lo,r.hi,e):r.toNumber(!!e)},i.merge=function(t,r,n){for(var o=Object.keys(r),i=0;i-1;--n)if(1===r[t[n]]&&this[t[n]]!==e&&null!==this[t[n]])return t[n]}},i.oneOfSetter=function(t){return function(e){for(var r=0;r127;)e[r++]=127&t|128,t>>>=7;e[r]=t}function f(t,r){this.len=t,this.next=e,this.val=r}function l(t,e,r){for(;t.hi;)e[r++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=127&t.lo|128,t.lo=t.lo>>>7;e[r++]=t.lo}function p(t,e,r){e[r++]=255&t,e[r++]=t>>>8&255,e[r++]=t>>>16&255,e[r]=t>>>24}r.exports=s;var h,c=t(38),d=c.LongBits,y=c.base64,m=c.utf8;s.create=c.Buffer?function(){return h||(h=t(41)),(s.create=function(){return new h})()}:function(){return new s},s.alloc=function(t){return new c.Array(t)},c.Array!==Array&&(s.alloc=c.pool(s.alloc,c.Array.prototype.subarray)),s.prototype.push=function(t,e,r){return this.tail=this.tail.next=new n(t,e,r),this.len+=e,this},f.prototype=Object.create(n.prototype),f.prototype.fn=a,s.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new f((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},s.prototype.int32=function(t){return t<0?this.push(l,10,d.fromNumber(t)):this.uint32(t)},s.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},s.prototype.uint64=function(t){var e=d.from(t);return this.push(l,e.length(),e)},s.prototype.int64=s.prototype.uint64,s.prototype.sint64=function(t){var e=d.from(t).zzEncode();return this.push(l,e.length(),e)},s.prototype.bool=function(t){return this.push(u,1,t?1:0)},s.prototype.fixed32=function(t){return this.push(p,4,t>>>0)},s.prototype.sfixed32=function(t){return this.push(p,4,t<<1^t>>31)},s.prototype.fixed64=function(t){var e=d.from(t);return this.push(p,4,e.lo).push(p,4,e.hi)},s.prototype.sfixed64=function(t){var e=d.from(t).zzEncode();return this.push(p,4,e.lo).push(p,4,e.hi)};var v="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n,o){t[0]=r,n[o++]=e[0],n[o++]=e[1],n[o++]=e[2],n[o]=e[3]}:function(r,n,o){t[0]=r,n[o++]=e[3],n[o++]=e[2],n[o++]=e[1],n[o]=e[0]}}():function(t,e,r){var n=t<0?1:0;if(n&&(t=-t),0===t)p(1/t>0?0:2147483648,e,r);else if(isNaN(t))p(2147483647,e,r);else if(t>3.4028234663852886e38)p((n<<31|2139095040)>>>0,e,r);else if(t<1.1754943508222875e-38)p((n<<31|Math.round(t/1.401298464324817e-45))>>>0,e,r);else{var o=Math.floor(Math.log(t)/Math.LN2),i=8388607&Math.round(t*Math.pow(2,-o)*8388608);p((n<<31|o+127<<23|i)>>>0,e,r)}};s.prototype.float=function(t){return this.push(v,4,t)};var g="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n,o){t[0]=r,n[o++]=e[0],n[o++]=e[1],n[o++]=e[2],n[o++]=e[3],n[o++]=e[4],n[o++]=e[5],n[o++]=e[6],n[o]=e[7]}:function(r,n,o){t[0]=r,n[o++]=e[7],n[o++]=e[6],n[o++]=e[5],n[o++]=e[4],n[o++]=e[3],n[o++]=e[2],n[o++]=e[1],n[o]=e[0]}}():function(t,e,r){var n=t<0?1:0;if(n&&(t=-t),0===t)p(0,e,r),p(1/t>0?0:2147483648,e,r+4);else if(isNaN(t))p(4294967295,e,r),p(2147483647,e,r+4);else if(t>1.7976931348623157e308)p(0,e,r),p((n<<31|2146435072)>>>0,e,r+4);else{var o;if(t<2.2250738585072014e-308)o=t/5e-324,p(o>>>0,e,r),p((n<<31|o/4294967296)>>>0,e,r+4);else{var i=Math.floor(Math.log(t)/Math.LN2);1024===i&&(i=1023),o=t*Math.pow(2,-i),p(4503599627370496*o>>>0,e,r),p((n<<31|i+1023<<20|1048576*o&1048575)>>>0,e,r+4)}}};s.prototype.double=function(t){return this.push(g,8,t)};var b=c.Array.prototype.set?function(t,e,r){e.set(t,r)}:function(t,e,r){for(var n=0;n>>0;if(!e)return this.push(u,1,0);if(c.isString(t)){var r=s.alloc(e=y.length(t));y.decode(t,r,0),t=r}return this.uint32(e).push(b,e,t)},s.prototype.string=function(t){var e=m.length(t);return e?this.uint32(e).push(m.write,e,t):this.push(u,1,0)},s.prototype.fork=function(){return this.states=new i(this),this.head=this.tail=new n(o,0,0),this.len=0,this},s.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(o,0,0),this.len=0), +e;if(!o(s))throw O(s,"type");var u=X();if(!n(u))throw O(u,"name");u=it(u),tt("=");var a=new h(u,A(X()),s,r,i),f=G.line();a.comment=et(),R(a),a.comment||(a.comment=et(f)),a.repeated&&g.packed[s]!==e&&!nt&&a.setOption("packed",!1,!0),t.add(a)}function I(t,e){var r=X();if(!n(r))throw O(r,"name");var o=b.lcFirst(r);r===o&&(r=b.ucFirst(r)),tt("=");var i=A(X()),u=new p(r);u.group=!0,u.comment=et();var a=new h(o,i,r,e);for(tt("{");"}"!==(K=X());)switch(K=s(K)){case"option":$(u,K),tt(";");break;case"required":case"optional":case"repeated":L(u,K);break;default:throw O(K)}tt(";",!0),t.add(u).add(a)}function z(t){tt("<");var r=X();if(g.mapKey[r]===e)throw O(r,"type");tt(",");var i=X();if(!o(i))throw O(i,"type");tt(">");var s=X();if(!n(s))throw O(s,"name");s=it(s),tt("=");var u=new c(s,A(X()),r,i),a=G.line();u.comment=et(),R(u),u.comment||(u.comment=et(a)),t.add(u)}function q(t,e){var r=X();if(!n(r))throw O(r,"name");r=it(r);var o=new d(r),i=G.line();if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());)"option"===e?($(o,e),tt(";")):(Q(e),L(o,"optional"));tt(";",!0)}else tt(";"),o.comment||(o.comment=et(i));t.add(o)}function B(t,e){var r=X();if(!n(r))throw O(r,"name");var o=new y(r);if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());)"option"===s(e)?($(o,e),tt(";")):F(o,e);tt(";",!0)}else tt(";");t.add(o)}function F(t,e){if(!n(e))throw O(e,"name");var r=e;tt("=");var o=A(X(),!0),i=G.line();t.add(r,o,et()),R({}),t.comments[r]||(t.comments[r]=et(i))}function $(t,e){var r=tt("(",!0),n=X();if(!o(n))throw O(n,"name");r&&(tt(")"),n="("+n+")",e=Y(),i(e)&&(n+=e,X())),tt("="),V(t,n)}function V(t,e){if(tt("{",!0)){do{if(!n(K=X()))throw O(K,"name");"{"===Y()?V(t,e+"."+K):(tt(":"),P(t,e+"."+K,j(!0)))}while(!tt("}",!0))}else P(t,e,j(!0))}function P(t,e,r){t.setOption&&t.setOption(e,r)}function R(t){if(tt("[",!0)){do $(t,"option");while(tt(",",!0));tt("]")}return tt(";"),t}function C(t,e){if(e=X(),!n(e))throw O(e,"service name");var r=e,o=new m(r);if(o.comment=et(),tt("{",!0)){for(;"}"!==(e=X());){var i=s(e);switch(i){case"option":$(o,i),tt(";");break;case"rpc":M(o,i);break;default:throw O(e)}}tt(";",!0)}else tt(";");t.add(o)}function M(t,e){var r=e,i=X();if(!n(i))throw O(i,"name");var u,a,f,l;if(tt("("),tt("stream",!0)&&(a=!0),!o(e=X()))throw O(e);if(u=e,tt(")"),tt("returns"),tt("("),tt("stream",!0)&&(l=!0),!o(e=X()))throw O(e);f=e,tt(")");var p=new v(i,r,u,f,a,l),h=G.line();if(p.comment=et(),tt("{",!0)){for(;"}"!==(e=X());){var c=s(e);switch(c){case"option":$(p,c),tt(";");break;default:throw O(e)}}tt(";",!0)}else tt(";"),p.comment||(p.comment=et(h));t.add(p)}function U(t,e){var r=X();if(!o(r))throw O(r,"reference");if(tt("{",!0)){for(;"}"!==(e=X());){var n=s(e);switch(n){case"required":case"repeated":case"optional":L(t,n,r);break;default:if(!nt||!o(e))throw O(e);Q(e),L(t,"optional",r)}}tt(";",!0)}else tt(";")}r instanceof l||(w=r,r=new l),w||(w=a.defaults);for(var H,_,Z,W,K,G=f(t),X=G.next,Q=G.push,Y=G.peek,tt=G.skip,et=G.cmnt,rt=!0,nt=!1,ot=r,it=w.keepCase?function(t){return t}:u;null!==(K=X());){var st=s(K);switch(st){case"package":if(!rt)throw O(K);T();break;case"import":if(!rt)throw O(K);N();break;case"syntax":if(!rt)throw O(K);E();break;case"option":if(!rt)throw O(K);$(ot,K),tt(";");break;default:if(D(ot,K)){rt=!1;continue}throw O(K)}}return a.filename=null,{package:H,imports:_,weakImports:Z,syntax:W,root:r}}r.exports=a,a.filename=null,a.defaults={keepCase:!1};var f=t(33),l=t(29),p=t(34),h=t(16),c=t(20),d=t(25),y=t(15),m=t(32),v=t(22),g=t(35),b=t(36)},{15:15,16:16,20:20,22:22,25:25,29:29,32:32,33:33,34:34,35:35,36:36}],27:[function(t,e){function r(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function n(t){this.buf=t,this.pos=0,this.len=t.length}function o(){var t=new w(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw r(this);if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(127&this.buf[this.pos++])<<7*e)>>>0,t}for(;e<4;++e)if(t.lo=(t.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(127&this.buf[this.pos])<<28)>>>0,t.hi=(t.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return t;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw r(this);if(t.hi=(t.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}function i(){return o.call(this).toLong()}function s(){return o.call(this).toNumber()}function u(){return o.call(this).toLong(!0)}function a(){return o.call(this).toNumber(!0)}function f(){return o.call(this).zzDecode().toLong()}function l(){return o.call(this).zzDecode().toNumber()}function p(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw r(this,8);return new w(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}function c(){return h.call(this).toLong(!0)}function d(){return h.call(this).toNumber(!0)}function y(){return h.call(this).zzDecode().toLong()}function m(){return h.call(this).zzDecode().toNumber()}function v(){b.Long?(n.prototype.int64=i,n.prototype.uint64=u,n.prototype.sint64=f,n.prototype.fixed64=c,n.prototype.sfixed64=y):(n.prototype.int64=s,n.prototype.uint64=a,n.prototype.sint64=l,n.prototype.fixed64=d,n.prototype.sfixed64=m)}e.exports=n;var g,b=t(38),w=b.LongBits,O=b.utf8;n.create=b.Buffer?function(e){return g||(g=t(28)),(n.create=function(t){return b.Buffer.isBuffer(t)?new g(t):new n(t)})(e)}:function(t){return new n(t)},n.prototype.j=b.Array.prototype.subarray||b.Array.prototype.slice,n.prototype.uint32=function(){var t=4294967295;return function(){if(t=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return t;if(t=(t|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return t;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return t}}(),n.prototype.int32=function(){return 0|this.uint32()},n.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},n.prototype.bool=function(){return 0!==this.uint32()},n.prototype.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return p(this.buf,this.pos+=4)},n.prototype.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var k="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],t[0]}:function(r,n){return e[3]=r[n],e[2]=r[n+1],e[1]=r[n+2],e[0]=r[n+3],t[0]}}():function(t,e){var r=p(t,e+4),n=2*(r>>31)+1,o=r>>>23&255,i=8388607&r;return 255===o?i?NaN:n*(1/0):0===o?1.401298464324817e-45*n*i:n*Math.pow(2,o-150)*(i+8388608)};n.prototype.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=k(this.buf,this.pos);return this.pos+=4,t};var j="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n){return e[0]=r[n],e[1]=r[n+1],e[2]=r[n+2],e[3]=r[n+3],e[4]=r[n+4],e[5]=r[n+5],e[6]=r[n+6],e[7]=r[n+7],t[0]}:function(r,n){return e[7]=r[n],e[6]=r[n+1],e[5]=r[n+2],e[4]=r[n+3],e[3]=r[n+4],e[2]=r[n+5],e[1]=r[n+6],e[0]=r[n+7],t[0]}}():function(t,e){var r=p(t,e+4),n=p(t,e+8),o=2*(n>>31)+1,i=n>>>20&2047,s=4294967296*(1048575&n)+r;return 2047===i?s?NaN:o*(1/0):0===i?5e-324*o*s:o*Math.pow(2,i-1075)*(s+4503599627370496)};n.prototype.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=j(this.buf,this.pos);return this.pos+=8,t},n.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,e===n?new this.buf.constructor(0):this.j.call(this.buf,e,n)},n.prototype.string=function(){var t=this.bytes();return O.read(t,0,t.length)},n.prototype.skip=function(t){if("number"==typeof t){if(this.pos+t>this.len)throw r(this,t);this.pos+=t}else do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++]);return this},n.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4===(t=7&this.uint32()))break;this.skipType(t)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this},n.f=v,v()},{28:28,38:38}],28:[function(t,e){function r(t){n.call(this,t)}e.exports=r;var n=t(27);(r.prototype=Object.create(n.prototype)).constructor=r;var o=t(38);o.Buffer&&(r.prototype.j=o.Buffer.prototype.slice),r.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len))}},{27:27,38:38}],29:[function(t,r){function n(t){s.call(this,"",t),this.deferred=[],this.files=[]}function o(){}function i(t,r){var n=r.parent.lookup(r.extend);if(n){var o=new l(r.fullName,r.id,r.type,r.rule,e,r.options);return o.declaringField=r,r.extensionField=o,n.add(o),!0}return!1}r.exports=n;var s=t(23);((n.prototype=Object.create(s.prototype)).constructor=n).className="Root";var u,a,f,l=t(16),p=t(15),h=t(36);n.fromJSON=function(t,e){return e||(e=new n),t.options&&e.setOptions(t.options),e.addJSON(t.nested)},n.prototype.resolvePath=h.path.resolve,n.prototype.load=function t(r,n,i){function s(t,e){if(i){var r=i;if(i=null,c)throw t;r(t,e)}}function u(t,e){try{if(h.isString(e)&&"{"===e.charAt(0)&&(e=JSON.parse(e)),h.isString(e)){a.filename=t;var r=a(e,p,n),o=0;if(r.imports)for(;o-1){var o=t.substring(n);o in f&&(t=o)}if(!(p.files.indexOf(t)>-1)){if(p.files.push(t),t in f)return c?u(t,f[t]):(++d,setTimeout(function(){--d,u(t,f[t])})),e;if(c){var a;try{a=h.fs.readFileSync(t).toString("utf8")}catch(t){return r||s(t),e}u(t,a)}else++d,h.fetch(t,function(n,o){if(--d,i)return n?(r?d||s(null,p):s(n),e):(u(t,o),e)})}}"function"==typeof n&&(i=n,n=e);var p=this;if(!i)return h.asPromise(t,p,r);var c=i===o,d=0;h.isString(r)&&(r=[r]);for(var y=0;y-1&&this.deferred.splice(r,1)}}else if(t instanceof p)c.test(t.name)&&delete t.parent[t.name];else if(t instanceof s){for(var n=0;n0)return w.shift();if(O)return o();var e,n,s,u,l;do{if(d===y)return null;for(e=!1;/\s/.test(s=a(d));)if("\n"===s&&++m,++d===y)return null;if("/"===a(d)){if(++d===y)throw r("comment");if("/"===a(d)){for(l="/"===a(u=d+1);"\n"!==a(++d);)if(d===y)return null;++d,l&&f(u,d-1),++m,e=!0}else{if("*"!==(s=a(d)))return"/";l="*"===a(u=d+1);do{if("\n"===s&&++m,++d===y)throw r("comment");n=s,s=a(d)}while("*"!==n||"/"!==s);++d,l&&f(u,d-2),e=!0}}}while(e);var p=d;i.lastIndex=0;var h=i.test(a(p++));if(!h)for(;p]/g,s=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g;n.map={0:"\0",r:"\r",n:"\n",t:"\t"},o.unescape=n},{}],34:[function(t,r){function n(t,r){i.call(this,t,r),this.fields={},this.oneofs=e,this.extensions=e,this.reserved=e,this.group=e,this.l=null,this.b=null,this.d=null,this.o=null}function o(t){return t.l=t.b=t.d=t.o=null,delete t.encode,delete t.decode,delete t.verify,t}r.exports=n;var i=t(23);((n.prototype=Object.create(i.prototype)).constructor=n).className="Type";var s=t(15),u=t(25),a=t(16),f=t(20),l=t(32),p=t(10),h=t(21),c=t(27),d=t(40),y=t(36),m=t(14),v=t(13),g=t(39),b=t(12);n.fromJSON=function(t,r){var o=new n(t,r.options);o.extensions=r.extensions,o.reserved=r.reserved;for(var p=Object.keys(r.fields),h=0;h>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(t){if("number"==typeof t)return r.fromNumber(t);if(n.isString(t)){if(!n.Long)return r.fromNumber(parseInt(t,10));t=n.Long.fromString(t)}return t.low||t.high?new r(t.low>>>0,t.high>>>0):o},r.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,r=~this.hi>>>0;return e||(r=r+1>>>0),-(e+4294967296*r)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(t){return n.Long?new n.Long(0|this.lo,0|this.hi,(!!t)):{low:0|this.lo,high:0|this.hi,unsigned:!!t}};var s=String.prototype.charCodeAt;r.fromHash=function(t){return t===i?o:new r((s.call(t,0)|s.call(t,1)<<8|s.call(t,2)<<16|s.call(t,3)<<24)>>>0,(s.call(t,4)|s.call(t,5)<<8|s.call(t,6)<<16|s.call(t,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this},r.prototype.zzDecode=function(){var t=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this},r.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===e?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:r<128?9:10}},{38:38}],38:[function(r,n,o){var i=o;i.asPromise=r(1),i.base64=r(2),i.EventEmitter=r(4),i.inquire=r(6),i.utf8=r(9),i.pool=r(8),i.LongBits=r(37),i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isNode=!!(t.process&&t.process.versions&&t.process.versions.node),i.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},i.isString=function(t){return"string"==typeof t||t instanceof String},i.isObject=function(t){return t&&"object"==typeof t},i.Buffer=function(){try{var t=i.inquire("buffer").Buffer;return t.prototype.utf8Write?(t.from||(t.from=function(e,r){return new t(e,r)}),t.allocUnsafe||(t.allocUnsafe=function(e){return new t(e)}),t):null}catch(t){return null}}(),i.newBuffer=function(t){return"number"==typeof t?i.Buffer?i.Buffer.allocUnsafe(t):new i.Array(t):i.Buffer?i.Buffer.from(t):"undefined"==typeof Uint8Array?t:new Uint8Array(t)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=t.dcodeIO&&t.dcodeIO.Long||i.inquire("long"),i.longToHash=function(t){return t?i.LongBits.from(t).toHash():i.LongBits.zeroHash},i.longFromHash=function(t,e){var r=i.LongBits.fromHash(t);return i.Long?i.Long.fromBits(r.lo,r.hi,e):r.toNumber(!!e)},i.merge=function(t,r,n){for(var o=Object.keys(r),i=0;i-1;--n)if(1===r[t[n]]&&this[t[n]]!==e&&null!==this[t[n]])return t[n]}},i.oneOfSetter=function(t){return function(e){for(var r=0;r127;)e[r++]=127&t|128,t>>>=7;e[r]=t}function f(t,r){this.len=t,this.next=e,this.val=r}function l(t,e,r){for(;t.hi;)e[r++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=127&t.lo|128,t.lo=t.lo>>>7;e[r++]=t.lo}function p(t,e,r){e[r++]=255&t,e[r++]=t>>>8&255,e[r++]=t>>>16&255,e[r]=t>>>24}r.exports=s;var h,c=t(38),d=c.LongBits,y=c.base64,m=c.utf8;s.create=c.Buffer?function(){return h||(h=t(41)),(s.create=function(){return new h})()}:function(){return new s},s.alloc=function(t){return new c.Array(t)},c.Array!==Array&&(s.alloc=c.pool(s.alloc,c.Array.prototype.subarray)),s.prototype.push=function(t,e,r){return this.tail=this.tail.next=new n(t,e,r),this.len+=e,this},f.prototype=Object.create(n.prototype),f.prototype.fn=a,s.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new f((t>>>=0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},s.prototype.int32=function(t){return t<0?this.push(l,10,d.fromNumber(t)):this.uint32(t)},s.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)},s.prototype.uint64=function(t){var e=d.from(t);return this.push(l,e.length(),e)},s.prototype.int64=s.prototype.uint64,s.prototype.sint64=function(t){var e=d.from(t).zzEncode();return this.push(l,e.length(),e)},s.prototype.bool=function(t){return this.push(u,1,t?1:0)},s.prototype.fixed32=function(t){return this.push(p,4,t>>>0)},s.prototype.sfixed32=function(t){return this.push(p,4,t<<1^t>>31)},s.prototype.fixed64=function(t){var e=d.from(t);return this.push(p,4,e.lo).push(p,4,e.hi)},s.prototype.sfixed64=function(t){var e=d.from(t).zzEncode();return this.push(p,4,e.lo).push(p,4,e.hi)};var v="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[3]?function(r,n,o){t[0]=r,n[o++]=e[0],n[o++]=e[1],n[o++]=e[2],n[o]=e[3]}:function(r,n,o){t[0]=r,n[o++]=e[3],n[o++]=e[2],n[o++]=e[1],n[o]=e[0]}}():function(t,e,r){var n=t<0?1:0;if(n&&(t=-t),0===t)p(1/t>0?0:2147483648,e,r);else if(isNaN(t))p(2147483647,e,r);else if(t>3.4028234663852886e38)p((n<<31|2139095040)>>>0,e,r);else if(t<1.1754943508222875e-38)p((n<<31|Math.round(t/1.401298464324817e-45))>>>0,e,r);else{var o=Math.floor(Math.log(t)/Math.LN2),i=8388607&Math.round(t*Math.pow(2,-o)*8388608);p((n<<31|o+127<<23|i)>>>0,e,r)}};s.prototype.float=function(t){return this.push(v,4,t)};var g="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),e=new Uint8Array(t.buffer);return t[0]=-0,e[7]?function(r,n,o){t[0]=r,n[o++]=e[0],n[o++]=e[1],n[o++]=e[2],n[o++]=e[3],n[o++]=e[4],n[o++]=e[5],n[o++]=e[6],n[o]=e[7]}:function(r,n,o){t[0]=r,n[o++]=e[7],n[o++]=e[6],n[o++]=e[5],n[o++]=e[4],n[o++]=e[3],n[o++]=e[2],n[o++]=e[1],n[o]=e[0]}}():function(t,e,r){var n=t<0?1:0;if(n&&(t=-t),0===t)p(0,e,r),p(1/t>0?0:2147483648,e,r+4);else if(isNaN(t))p(4294967295,e,r),p(2147483647,e,r+4);else if(t>1.7976931348623157e308)p(0,e,r),p((n<<31|2146435072)>>>0,e,r+4);else{var o;if(t<2.2250738585072014e-308)o=t/5e-324,p(o>>>0,e,r),p((n<<31|o/4294967296)>>>0,e,r+4);else{var i=Math.floor(Math.log(t)/Math.LN2);1024===i&&(i=1023),o=t*Math.pow(2,-i),p(4503599627370496*o>>>0,e,r),p((n<<31|i+1023<<20|1048576*o&1048575)>>>0,e,r+4)}}};s.prototype.double=function(t){return this.push(g,8,t)};var b=c.Array.prototype.set?function(t,e,r){e.set(t,r)}:function(t,e,r){for(var n=0;n>>0;if(!e)return this.push(u,1,0);if(c.isString(t)){var r=s.alloc(e=y.length(t));y.decode(t,r,0),t=r}return this.uint32(e).push(b,e,t)},s.prototype.string=function(t){var e=m.length(t);return e?this.uint32(e).push(m.write,e,t):this.push(u,1,0)},s.prototype.fork=function(){return this.states=new i(this),this.head=this.tail=new n(o,0,0),this.len=0,this},s.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(o,0,0),this.len=0), this},s.prototype.ldelim=function(){var t=this.head,e=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=e,this.len+=r),this},s.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return e}},{38:38,41:41}],41:[function(t,e){function r(){o.call(this)}function n(t,e,r){t.length<40?i.utf8.write(t,e,r):e.utf8Write(t,r)}e.exports=r;var o=t(40);(r.prototype=Object.create(o.prototype)).constructor=r;var i=t(38),s=i.Buffer;r.alloc=function(t){return(r.alloc=s.allocUnsafe)(t)};var u=s&&s.prototype instanceof Uint8Array&&"set"===s.prototype.set.name?function(t,e,r){e.set(t,r)}:function(t,e,r){if(t.copy)t.copy(e,r,0,t.length);else for(var n=0;n>>0;return this.uint32(e),e&&this.push(u,e,t),this},r.prototype.string=function(t){var e=s.byteLength(t);return this.uint32(e),e&&this.push(n,e,t),this}},{38:38,40:40}]},{},[19])}("object"==typeof window&&window||"object"==typeof self&&self||this); //# sourceMappingURL=protobuf.min.js.map diff --git a/dist/protobuf.min.js.gz b/dist/protobuf.min.js.gz index d2fca3c5ba71af2a1d448f7e8987f3e58365a611..6cace52b182ddd29b23c826d0a3966463eaea2a6 100644 GIT binary patch literal 18925 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
7D1c1to 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 diff --git a/dist/protobuf.min.js.map b/dist/protobuf.min.js.map index 48d3a189e..a2c857f70 100644 --- a/dist/protobuf.min.js.map +++ b/dist/protobuf.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":["global","undefined","e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","Math","ceil","b64","Array","s64","encode","buffer","start","end","j","b","String","fromCharCode","invalidEncoding","decode","offset","c","charCodeAt","test","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","log","keys","Object","Function","concat","map","key","format","$0","$1","floor","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","read","chunk","write","c1","c2","Class","type","ctor","Type","TypeError","util","Message","constructor","merge","$type","fieldsArray","_fieldsArray","isArray","defaultValue","emptyArray","isObject","long","emptyObject","ctorProperties","oneofsArray","_oneofsArray","get","oneOfGetter","oneof","set","oneOfSetter","defineProperties","create","common","json","nested","google","protobuf","Any","fields","type_url","id","value","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","genValuePartial_fromObject","field","fieldIndex","prop","resolvedType","Enum","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","converter","fromObject","mtype","safeProp","toObject","repeatedFields","mapFields","otherFields","valuesById","low","high","unsigned","toNumber","bytes","decoder","group","ref","types","basic","compat","packed","genTypePartial","encoder","partOf","wireType","mapKey","required","indexOf","options","ReflectionObject","comments","className","fromJSON","toJSON","add","comment","isString","isInteger","remove","val","Field","extend","toLowerCase","optional","message","Long","extensionField","declaringField","_packed","defineProperty","getOption","setOption","ifNotSet","resolved","defaults","parent","lookup","fromNumber","freeze","newBuffer","load","filename","root","Root","loadSync","build","verifier","Namespace","OneOf","MapField","Service","Method","configure","Reader","_configure","roots","Writer","BufferWriter","BufferReader","rpc","define","amd","tokenize","parse","resolvedKeyType","properties","writer","encodeDelimited","reader","decodeDelimited","verify","object","from","toJSONOptions","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","arrayToJSON","array","obj","_nestedArray","clearCache","namespace","initNestedTypes","addJSON","toArray","nestedArray","nestedJson","ns","names","methods","getEnum","setOptions","onAdd","onRemove","ptr","part","resolveAll","filterType","parentAlreadyChecked","found","lookupType","lookupService","lookupEnum","unshift","_handleAdd","_handleRemove","toString","fieldNames","addFieldsToParent","index","self","isName","token","isTypeRef","isFqTypeRef","lower","camelCase","substring","toUpperCase","illegal","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","Infinity","NaN","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","cmnt","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","trailingLine","parseInlineOptions","fieldName","lcFirst","ucFirst","valueType","enm","parseEnumValue","custom","parseOptionValue","service","parseMethod","method","reference","head","keepCase","package","indexOutOfRange","writeLength","RangeError","pos","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","int64","uint64","sint64","fixed64","sfixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","Uint8Array","uint","exponent","mantissa","pow","float","readDouble","Float64Array","f64","double","skipType","utf8Slice","min","deferred","files","SYNC","tryHandleExtension","extendedType","sisterField","resolvePath","finish","cb","sync","process","parsed","queued","weak","idx","lastIndexOf","altname","setTimeout","readFileSync","isNode","exposeRe","_parse","_common","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","response","endedByRPC","_methodsArray","inherited","methodsArray","rpcService","m","q","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","setComment","commentType","commentLine","lines","trim","commentText","stack","repeat","curr","isComment","delimRe","delim","expected","actual","equals","ret","0","_fieldsById","_ctor","fieldsById","filter","setup","fork","ldelim","bake","zero","zzEncode","zeroHash","fromString","fromHash","hash","toHash","mask","part0","part1","part2","versions","node","Number","isFinite","utf8Write","encoding","allocUnsafe","sizeOrArray","dcodeIO","longToHash","longFromHash","fromBits","dst","fieldMap","lazyResolve","lazyTypes","longs","enums","invalid","genVerifyValue","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","writeFloat","isNaN","round","LN2","writeDouble","writeBytes","reset","writeStringBuffer","writeBytesBuffer","copy","byteLength"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\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 string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\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 string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\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 = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\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.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(6);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\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 path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\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\";\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 i ? 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 = Class;\r\n\r\nvar Message = require(21),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction Class(type, ctor) {\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return c.call(this,p)\").eof(type.name, {\r\n c: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n (ctor.prototype = new Message()).constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n ctor.prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n var i = 0;\r\n for (; i < /* initializes */ type.fieldsArray.length; ++i) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n ctor.prototype[type._fieldsArray[i].name] = Array.isArray(type._fieldsArray[i].resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(type._fieldsArray[i].defaultValue) && !type._fieldsArray[i].long\r\n ? util.emptyObject\r\n : type._fieldsArray[i].defaultValue;\r\n }\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n var ctorProperties = {};\r\n for (i = 0; i < /* initializes */ type.oneofsArray.length; ++i)\r\n ctorProperties[type._oneofsArray[i].resolve().name] = {\r\n get: util.oneOfGetter(type._oneofsArray[i].oneof),\r\n set: util.oneOfSetter(type._oneofsArray[i].oneof)\r\n };\r\n if (i)\r\n Object.defineProperties(ctor.prototype, ctorProperties);\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return ctor.prototype;\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @function\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nClass.create = Class;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(d%s){\", prop);\r\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\r\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", keys[i])\r\n (\"case %j:\", values[keys[i]])\r\n (\"m%s=%j\", prop, values[keys[i]])\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray,\r\n oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n for (var j = 0; j < /* initializes */ oneof.fieldsArray.length; ++j) {\r\n var field = oneof._fieldsArray[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (values && !util.isObject(values))\r\n throw TypeError(\"values must be an object\");\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n if (values)\r\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\r\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\r\n}\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnum.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnum.prototype.add = function(name, id, comment) {\r\n // utilized by the parser but not by .fromJSON\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnum.prototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\r\n\r\nvar Enum = require(15),\r\n types = require(35),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(Field.prototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nField.prototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(14);\r\nprotobuf.decoder = require(13);\r\nprotobuf.verifier = require(39);\r\nprotobuf.converter = require(12);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(24);\r\nprotobuf.Namespace = require(23);\r\nprotobuf.Root = require(29);\r\nprotobuf.Enum = require(15);\r\nprotobuf.Type = require(34);\r\nprotobuf.Field = require(16);\r\nprotobuf.OneOf = require(25);\r\nprotobuf.MapField = require(20);\r\nprotobuf.Service = require(32);\r\nprotobuf.Method = require(22);\r\n\r\n// Runtime\r\nprotobuf.Class = require(10);\r\nprotobuf.Message = require(21);\r\n\r\n// Utility\r\nprotobuf.types = require(35);\r\nprotobuf.util = require(36);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(40);\r\nprotobuf.BufferWriter = require(41);\r\nprotobuf.Reader = require(27);\r\nprotobuf.BufferReader = require(28);\r\n\r\n// Utility\r\nprotobuf.util = require(38);\r\nprotobuf.rpc = require(30);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(17);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(33);\r\nprotobuf.parse = require(26);\r\nprotobuf.common = require(11);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(16);\r\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\r\n\r\nvar types = require(35),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return Field.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties)\r\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\r\n\r\nvar Type = require(34),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\r\n\r\nvar Enum = require(15),\r\n Field = require(16),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar initNestedTypes = function() {\r\n Type = require(34);\r\n Service = require(32);\r\n initNestedTypes = null;\r\n};\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespace.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\r\n nested = nestedJson[names[i]];\r\n ns.add( // most to least likely\r\n ( nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : nested.id !== undefined\r\n ? Field.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespace.prototype.get = function get(name) {\r\n return this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespace.prototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespace.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\r\n throw TypeError(\"object must be a valid nested object\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespace.prototype.remove = function remove(object) {\r\n\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n if (object.parent !== this)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespace.prototype.define = function define(path, json) {\r\n\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return this.resolve();\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespace.prototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespace.prototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespace.prototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\n\r\nvar util = require(36);\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\nObject.defineProperties(ReflectionObject.prototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(29);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObject.prototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\r\n this.setOption(keys[i], options[keys[i]], ifNotSet);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObject.prototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\r\n\r\nvar Field = require(16);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOf.prototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n for (var i = 0; i < oneof._fieldsArray.length; ++i)\r\n if (!oneof._fieldsArray[i].parent)\r\n oneof.parent.add(oneof._fieldsArray[i]);\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n for (var i = 0; i < this.oneof.length; ++i) {\r\n var field = parent.get(this.oneof[i]);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n }\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onRemove = function onRemove(parent) {\r\n for (var i = 0, field; i < this._fieldsArray.length; ++i)\r\n if ((field = this._fieldsArray[i]).parent)\r\n field.parent.remove(field);\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(33),\r\n Root = require(29),\r\n Type = require(34),\r\n Field = require(16),\r\n MapField = require(20),\r\n OneOf = require(25),\r\n Enum = require(15),\r\n Service = require(32),\r\n Method = require(22),\r\n types = require(35),\r\n util = require(36);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(38);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(28);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReader.prototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(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 /* istanbul ignore next */\r\n : function readFloat_f32_le(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 : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\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/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(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 /* istanbul ignore next */\r\n : function readDouble_f64_le(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 : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\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/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReader.prototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReader.prototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n Reader.prototype.int64 = read_int64_long;\r\n Reader.prototype.uint64 = read_uint64_long;\r\n Reader.prototype.sint64 = read_sint64_long;\r\n Reader.prototype.fixed64 = read_fixed64_long;\r\n Reader.prototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n Reader.prototype.int64 = read_int64_number;\r\n Reader.prototype.uint64 = read_uint64_number;\r\n Reader.prototype.sint64 = read_sint64_number;\r\n Reader.prototype.fixed64 = read_fixed64_number;\r\n Reader.prototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(27);\r\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReader.prototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\r\n\r\nvar Field = require(16),\r\n Enum = require(15),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n if (json.options)\r\n root.setOptions(json.options);\r\n return root.addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRoot.prototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options),\r\n i = 0;\r\n if (parsed.imports)\r\n for (; i < parsed.imports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.imports[i]));\r\n if (parsed.weakImports)\r\n for (i = 0; i < parsed.weakImports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.weakImports[i]), true);\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n for (var i = 0; i < filename.length; ++i)\r\n fetch(self.resolvePath(\"\", filename[i]));\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRoot.prototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRoot.prototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Root} root Root instance\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction tryHandleExtension(root, field) { \r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleAdd = function _handleAdd(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\r\n if (!tryHandleExtension(this, object))\r\n this.deferred.push(object);\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n } else /* everything else is a namespace */ {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (object instanceof Type) // Try to handle any deferred extensions\r\n for (var i = 0; i < this.deferred.length;)\r\n if (tryHandleExtension(this, this.deferred[i]))\r\n this.deferred.splice(i, 1);\r\n else\r\n ++i;\r\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\r\n this._handleAdd(object._nestedArray[j]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n }\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleRemove = function _handleRemove(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field */ object.extend !== undefined) {\r\n if (/* already handled */ object.extensionField) { // remove its sister field\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n } else { // cancel the extension\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n }\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n\r\n } else if (object instanceof Namespace) {\r\n\r\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\r\n this._handleRemove(object._nestedArray[i]);\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n\r\n }\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(31);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(38);\r\n\r\n// Extends EventEmitter\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\r\n\r\nvar Method = require(22),\r\n util = require(36),\r\n rpc = require(30);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\r\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Service.prototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.get = function get(name) {\r\n return this.methods[name]\r\n || Namespace.prototype.get.call(this, name);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n for (var i = 0; i < /* initializes */ this.methodsArray.length; ++i) {\r\n rpcService[util.lcFirst(this._methodsArray[i].resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(this._methodsArray[i].name), {\r\n m: this._methodsArray[i],\r\n q: this._methodsArray[i].resolvedRequestType.ctor,\r\n s: this._methodsArray[i].resolvedResponseType.ctor\r\n });\r\n }\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n var lines = source\r\n .substring(start, end)\r\n .split(/\\n/g);\r\n for (var i = 0; i < lines.length; ++i)\r\n lines[i] = lines[i].replace(/ *[*/]+ */, \"\").trim();\r\n commentText = lines\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\r\n\r\nvar Enum = require(15),\r\n OneOf = require(25),\r\n Field = require(16),\r\n MapField = require(20),\r\n Service = require(32),\r\n Class = require(10),\r\n Message = require(21),\r\n Reader = require(27),\r\n Writer = require(40),\r\n util = require(36),\r\n encoder = require(14),\r\n decoder = require(13),\r\n verifier = require(39),\r\n converter = require(12);\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n var names = Object.keys(json.fields),\r\n i = 0;\r\n for (; i < names.length; ++i)\r\n type.add(\r\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\r\n ? MapField.fromJSON\r\n : Field.fromJSON )(names[i], json.fields[names[i]])\r\n );\r\n if (json.oneofs)\r\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\r\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\r\n if (json.nested)\r\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\r\n var nested = json.nested[names[i]];\r\n type.add( // most to least likely\r\n ( nested.id !== undefined\r\n ? Field.fromJSON\r\n : nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(Type.prototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.get = function get(name) {\r\n return this.fields[name]\r\n || this.oneofs && this.oneofs[name]\r\n || this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nType.prototype.add = function add(object) {\r\n\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nType.prototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nType.prototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nType.prototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = [];\r\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\r\n types.push(this._fieldsArray[i].resolve().resolvedType);\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nType.prototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.from = Type.prototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nType.prototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(36);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(38);\r\n\r\nutil.codegen = require(3);\r\nutil.fetch = require(5);\r\nutil.path = require(7);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n var array = [];\r\n if (object)\r\n for (var keys = Object.keys(object), i = 0; i < keys.length; ++i)\r\n array.push(object[keys[i]]);\r\n return array;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (util.isString(value)) {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBits.prototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBits.prototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBits.prototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBits.prototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(6);\r\nutil.utf8 = require(9);\r\nutil.pool = require(8);\r\nutil.LongBits = require(37);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n fieldMap[fieldNames[i]] = 1;\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n for (var i = 0; i < lazyTypes.length; ++i) {\r\n for (var keys = Object.keys(lazyTypes[i]), j = 0; j < keys.length; ++j) {\r\n var path = lazyTypes[i][keys[j]].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n lazyTypes[i][keys[j]] = ptr;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.int64 = Writer.prototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (util.isString(value)) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriter.prototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(40);\r\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\r\n\r\nvar util = require(38);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\r\n if (util.isString(value))\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":["global","undefined","e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","Math","ceil","b64","Array","s64","encode","buffer","start","end","j","b","String","fromCharCode","invalidEncoding","decode","offset","c","charCodeAt","test","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","log","keys","Object","Function","concat","map","key","format","$0","$1","floor","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","read","chunk","write","c1","c2","Class","type","ctor","Type","TypeError","util","Message","constructor","merge","$type","fieldsArray","_fieldsArray","isArray","defaultValue","emptyArray","isObject","long","emptyObject","ctorProperties","oneofsArray","_oneofsArray","get","oneOfGetter","oneof","set","oneOfSetter","defineProperties","create","common","json","nested","google","protobuf","Any","fields","type_url","id","value","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","genValuePartial_fromObject","field","fieldIndex","prop","resolvedType","Enum","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","converter","fromObject","mtype","safeProp","toObject","repeatedFields","mapFields","otherFields","valuesById","low","high","unsigned","toNumber","bytes","decoder","group","ref","types","basic","compat","packed","genTypePartial","encoder","partOf","wireType","mapKey","required","indexOf","options","ReflectionObject","comments","className","fromJSON","toJSON","add","comment","isString","isInteger","remove","val","Field","extend","toLowerCase","optional","message","Long","extensionField","declaringField","_packed","defineProperty","getOption","setOption","ifNotSet","resolved","defaults","parent","lookup","fromNumber","freeze","newBuffer","load","filename","root","Root","loadSync","build","verifier","Namespace","OneOf","MapField","Service","Method","configure","Reader","_configure","roots","Writer","BufferWriter","BufferReader","rpc","define","amd","tokenize","parse","resolvedKeyType","properties","writer","encodeDelimited","reader","decodeDelimited","verify","object","from","toJSONOptions","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","arrayToJSON","array","obj","_nestedArray","clearCache","namespace","initNestedTypes","addJSON","toArray","nestedArray","nestedJson","ns","names","methods","getEnum","setOptions","onAdd","onRemove","ptr","part","resolveAll","filterType","parentAlreadyChecked","found","lookupType","lookupService","lookupEnum","unshift","_handleAdd","_handleRemove","toString","fieldNames","addFieldsToParent","index","self","isName","token","isTypeRef","isFqTypeRef","lower","camelCase","substring","toUpperCase","illegal","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","Infinity","NaN","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","cmnt","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","trailingLine","parseInlineOptions","fieldName","lcFirst","ucFirst","valueType","enm","parseEnumValue","custom","parseOptionValue","service","parseMethod","method","reference","head","keepCase","package","indexOutOfRange","writeLength","RangeError","pos","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","int64","uint64","sint64","fixed64","sfixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","Uint8Array","uint","exponent","mantissa","pow","float","readDouble","Float64Array","f64","double","skipType","utf8Slice","min","deferred","files","SYNC","tryHandleExtension","extendedType","sisterField","resolvePath","finish","cb","sync","process","parsed","queued","weak","idx","lastIndexOf","altname","setTimeout","readFileSync","isNode","exposeRe","_parse","_common","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","response","endedByRPC","_methodsArray","inherited","methodsArray","rpcService","m","q","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","setComment","commentType","commentLine","lines","trim","commentText","stack","repeat","curr","isComment","delimRe","delim","expected","actual","equals","ret","0","_fieldsById","_ctor","fieldsById","filter","setup","fork","ldelim","bake","zero","zzEncode","zeroHash","fromString","fromHash","hash","toHash","mask","part0","part1","part2","versions","node","Number","isFinite","utf8Write","encoding","allocUnsafe","sizeOrArray","dcodeIO","longToHash","longFromHash","fromBits","dst","fieldMap","lazyResolve","lazyTypes","longs","enums","invalid","genVerifyValue","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","writeFloat","isNaN","round","LN2","writeDouble","writeBytes","reset","writeStringBuffer","writeBytesBuffer","copy","byteLength"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\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 string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\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 string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\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 = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\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.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nEventEmitterPrototype.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\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(6);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\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 path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\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\";\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 i ? 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 = Class;\r\n\r\nvar Message = require(21),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction Class(type, ctor) {\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return c.call(this,p)\").eof(type.name, {\r\n c: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n (ctor.prototype = new Message()).constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n ctor.prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n var i = 0;\r\n for (; i < /* initializes */ type.fieldsArray.length; ++i) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n ctor.prototype[type._fieldsArray[i].name] = Array.isArray(type._fieldsArray[i].resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(type._fieldsArray[i].defaultValue) && !type._fieldsArray[i].long\r\n ? util.emptyObject\r\n : type._fieldsArray[i].defaultValue;\r\n }\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n var ctorProperties = {};\r\n for (i = 0; i < /* initializes */ type.oneofsArray.length; ++i)\r\n ctorProperties[type._oneofsArray[i].resolve().name] = {\r\n get: util.oneOfGetter(type._oneofsArray[i].oneof),\r\n set: util.oneOfSetter(type._oneofsArray[i].oneof)\r\n };\r\n if (i)\r\n Object.defineProperties(ctor.prototype, ctorProperties);\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return ctor.prototype;\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @function\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nClass.create = Class;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(d%s){\", prop);\r\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\r\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", keys[i])\r\n (\"case %j:\", values[keys[i]])\r\n (\"m%s=%j\", prop, values[keys[i]])\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray,\r\n oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n for (var j = 0; j < /* initializes */ oneof.fieldsArray.length; ++j) {\r\n var field = oneof._fieldsArray[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (values && !util.isObject(values))\r\n throw TypeError(\"values must be an object\");\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n if (values)\r\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\r\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\r\n}\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnum.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnum.prototype.add = function(name, id, comment) {\r\n // utilized by the parser but not by .fromJSON\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnum.prototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\r\n\r\nvar Enum = require(15),\r\n types = require(35),\r\n util = require(36);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(Field.prototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nField.prototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nField.prototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(14);\r\nprotobuf.decoder = require(13);\r\nprotobuf.verifier = require(39);\r\nprotobuf.converter = require(12);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(24);\r\nprotobuf.Namespace = require(23);\r\nprotobuf.Root = require(29);\r\nprotobuf.Enum = require(15);\r\nprotobuf.Type = require(34);\r\nprotobuf.Field = require(16);\r\nprotobuf.OneOf = require(25);\r\nprotobuf.MapField = require(20);\r\nprotobuf.Service = require(32);\r\nprotobuf.Method = require(22);\r\n\r\n// Runtime\r\nprotobuf.Class = require(10);\r\nprotobuf.Message = require(21);\r\n\r\n// Utility\r\nprotobuf.types = require(35);\r\nprotobuf.util = require(36);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(40);\r\nprotobuf.BufferWriter = require(41);\r\nprotobuf.Reader = require(27);\r\nprotobuf.BufferReader = require(28);\r\n\r\n// Utility\r\nprotobuf.util = require(38);\r\nprotobuf.rpc = require(30);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(17);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(33);\r\nprotobuf.parse = require(26);\r\nprotobuf.common = require(11);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(16);\r\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\r\n\r\nvar types = require(35),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapField.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return Field.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(36);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties)\r\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\r\n\r\nvar Type = require(34),\r\n util = require(36);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethod.prototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\r\n\r\nvar Enum = require(15),\r\n Field = require(16),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar initNestedTypes = function() {\r\n Type = require(34);\r\n Service = require(32);\r\n initNestedTypes = null;\r\n};\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespace.prototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\r\n nested = nestedJson[names[i]];\r\n ns.add( // most to least likely\r\n ( nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : nested.id !== undefined\r\n ? Field.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespace.prototype.get = function get(name) {\r\n return this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespace.prototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespace.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\r\n throw TypeError(\"object must be a valid nested object\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespace.prototype.remove = function remove(object) {\r\n\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n if (object.parent !== this)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespace.prototype.define = function define(path, json) {\r\n\r\n if (util.isString(path))\r\n path = path.split(\".\");\r\n else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespace.prototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return this.resolve();\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespace.prototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespace.prototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespace.prototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (initNestedTypes)\r\n initNestedTypes();\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\n\r\nvar util = require(36);\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\nObject.defineProperties(ReflectionObject.prototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(29);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObject.prototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(29);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObject.prototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\r\n this.setOption(keys[i], options[keys[i]], ifNotSet);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObject.prototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(24);\r\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\r\n\r\nvar Field = require(16);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOf.prototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent)\r\n for (var i = 0; i < oneof._fieldsArray.length; ++i)\r\n if (!oneof._fieldsArray[i].parent)\r\n oneof.parent.add(oneof._fieldsArray[i]);\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOf.prototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n for (var i = 0; i < this.oneof.length; ++i) {\r\n var field = parent.get(this.oneof[i]);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n }\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOf.prototype.onRemove = function onRemove(parent) {\r\n for (var i = 0, field; i < this._fieldsArray.length; ++i)\r\n if ((field = this._fieldsArray[i]).parent)\r\n field.parent.remove(field);\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(33),\r\n Root = require(29),\r\n Type = require(34),\r\n Field = require(16),\r\n MapField = require(20),\r\n OneOf = require(25),\r\n Enum = require(15),\r\n Service = require(32),\r\n Method = require(22),\r\n types = require(35),\r\n util = require(36);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(38);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(28);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReader.prototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(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 /* istanbul ignore next */\r\n : function readFloat_f32_le(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 : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\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/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(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 /* istanbul ignore next */\r\n : function readDouble_f64_le(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 : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\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/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReader.prototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReader.prototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReader.prototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReader.prototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n Reader.prototype.int64 = read_int64_long;\r\n Reader.prototype.uint64 = read_uint64_long;\r\n Reader.prototype.sint64 = read_sint64_long;\r\n Reader.prototype.fixed64 = read_fixed64_long;\r\n Reader.prototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n Reader.prototype.int64 = read_int64_number;\r\n Reader.prototype.uint64 = read_uint64_number;\r\n Reader.prototype.sint64 = read_sint64_number;\r\n Reader.prototype.fixed64 = read_fixed64_number;\r\n Reader.prototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(27);\r\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReader.prototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\r\n\r\nvar Field = require(16),\r\n Enum = require(15),\r\n util = require(36);\r\n\r\nvar Type, // cyclic\r\n parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n if (json.options)\r\n root.setOptions(json.options);\r\n return root.addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRoot.prototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRoot.prototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options),\r\n i = 0;\r\n if (parsed.imports)\r\n for (; i < parsed.imports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.imports[i]));\r\n if (parsed.weakImports)\r\n for (i = 0; i < parsed.weakImports.length; ++i)\r\n fetch(self.resolvePath(filename, parsed.weakImports[i]), true);\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n for (var i = 0; i < filename.length; ++i)\r\n fetch(self.resolvePath(\"\", filename[i]));\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRoot.prototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRoot.prototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Root} root Root instance\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction tryHandleExtension(root, field) { \r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleAdd = function _handleAdd(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\r\n if (!tryHandleExtension(this, object))\r\n this.deferred.push(object);\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n } else /* everything else is a namespace */ {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(34);\r\n\r\n if (object instanceof Type) // Try to handle any deferred extensions\r\n for (var i = 0; i < this.deferred.length;)\r\n if (tryHandleExtension(this, this.deferred[i]))\r\n this.deferred.splice(i, 1);\r\n else\r\n ++i;\r\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\r\n this._handleAdd(object._nestedArray[j]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n }\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRoot.prototype._handleRemove = function _handleRemove(object) {\r\n if (object instanceof Field) {\r\n\r\n if (/* an extension field */ object.extend !== undefined) {\r\n if (/* already handled */ object.extensionField) { // remove its sister field\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n } else { // cancel the extension\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n }\r\n\r\n } else if (object instanceof Enum) {\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n\r\n } else if (object instanceof Namespace) {\r\n\r\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\r\n this._handleRemove(object._nestedArray[i]);\r\n\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n\r\n }\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(31);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(38);\r\n\r\n// Extends EventEmitter\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\r\n\r\nvar Method = require(22),\r\n util = require(36),\r\n rpc = require(30);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\r\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(Service.prototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.get = function get(name) {\r\n return this.methods[name]\r\n || Namespace.prototype.get.call(this, name);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nService.prototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n for (var i = 0; i < /* initializes */ this.methodsArray.length; ++i) {\r\n rpcService[util.lcFirst(this._methodsArray[i].resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(this._methodsArray[i].name), {\r\n m: this._methodsArray[i],\r\n q: this._methodsArray[i].resolvedRequestType.ctor,\r\n s: this._methodsArray[i].resolvedResponseType.ctor\r\n });\r\n }\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n var lines = source\r\n .substring(start, end)\r\n .split(/\\n/g);\r\n for (var i = 0; i < lines.length; ++i)\r\n lines[i] = lines[i].replace(/^ *[*/]+ */, \"\").trim();\r\n commentText = lines\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(23);\r\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\r\n\r\nvar Enum = require(15),\r\n OneOf = require(25),\r\n Field = require(16),\r\n MapField = require(20),\r\n Service = require(32),\r\n Class = require(10),\r\n Message = require(21),\r\n Reader = require(27),\r\n Writer = require(40),\r\n util = require(36),\r\n encoder = require(14),\r\n decoder = require(13),\r\n verifier = require(39),\r\n converter = require(12);\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n var names = Object.keys(json.fields),\r\n i = 0;\r\n for (; i < names.length; ++i)\r\n type.add(\r\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\r\n ? MapField.fromJSON\r\n : Field.fromJSON )(names[i], json.fields[names[i]])\r\n );\r\n if (json.oneofs)\r\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\r\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\r\n if (json.nested)\r\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\r\n var nested = json.nested[names[i]];\r\n type.add( // most to least likely\r\n ( nested.id !== undefined\r\n ? Field.fromJSON\r\n : nested.fields !== undefined\r\n ? Type.fromJSON\r\n : nested.values !== undefined\r\n ? Enum.fromJSON\r\n : nested.methods !== undefined\r\n ? Service.fromJSON\r\n : Namespace.fromJSON )(names[i], nested)\r\n );\r\n }\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(Type.prototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.toJSON = function toJSON() {\r\n var inherited = Namespace.prototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return Namespace.prototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nType.prototype.get = function get(name) {\r\n return this.fields[name]\r\n || this.oneofs && this.oneofs[name]\r\n || this.nested && this.nested[name]\r\n || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nType.prototype.add = function add(object) {\r\n\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nType.prototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return Namespace.prototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nType.prototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nType.prototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = [];\r\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\r\n types.push(this._fieldsArray[i].resolve().resolvedType);\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nType.prototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nType.prototype.from = Type.prototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nType.prototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(36);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(38);\r\n\r\nutil.codegen = require(3);\r\nutil.fetch = require(5);\r\nutil.path = require(7);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n var array = [];\r\n if (object)\r\n for (var keys = Object.keys(object), i = 0; i < keys.length; ++i)\r\n array.push(object[keys[i]]);\r\n return array;\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(38);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (util.isString(value)) {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBits.prototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBits.prototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBits.prototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBits.prototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBits.prototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(6);\r\nutil.utf8 = require(9);\r\nutil.pool = require(8);\r\nutil.LongBits = require(37);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n fieldMap[fieldNames[i]] = 1;\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n for (var i = 0; i < lazyTypes.length; ++i) {\r\n for (var keys = Object.keys(lazyTypes[i]), j = 0; j < keys.length; ++j) {\r\n var path = lazyTypes[i][keys[j]].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n lazyTypes[i][keys[j]] = ptr;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(15),\r\n util = require(36);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.int64 = Writer.prototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriter.prototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (util.isString(value)) {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriter.prototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriter.prototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(40);\r\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\r\n\r\nvar util = require(38);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\r\n if (util.isString(value))\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriter.prototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/src/tokenize.js b/src/tokenize.js index 9af6f85a2..be575d975 100644 --- a/src/tokenize.js +++ b/src/tokenize.js @@ -117,7 +117,7 @@ function tokenize(source) { .substring(start, end) .split(/\n/g); for (var i = 0; i < lines.length; ++i) - lines[i] = lines[i].replace(/ *[*/]+ */, "").trim(); + lines[i] = lines[i].replace(/^ *[*/]+ */, "").trim(); commentText = lines .join("\n") .trim(); diff --git a/tests/data/comments.proto b/tests/data/comments.proto index c5e0be211..f1639db90 100644 --- a/tests/data/comments.proto +++ b/tests/data/comments.proto @@ -20,7 +20,7 @@ message Test1 { // Field with no comment. uint32 field2 = 2; - bool field3 = 3; /// Field with a comment. + bool field3 = 3; /// Field with a comment and a link } // Message diff --git a/tests/docs_comments.js b/tests/docs_comments.js index 7b1a3900e..15f1a0524 100644 --- a/tests/docs_comments.js +++ b/tests/docs_comments.js @@ -13,7 +13,7 @@ tape.test("proto comments", function(test) { test.equal(root.lookup("Test1.field1").comment, "Field with a comment.", "should parse blocks for message fields"); test.equal(root.lookup("Test1.field2").comment, null, "should not parse lines for message fields"); - test.equal(root.lookup("Test1.field3").comment, "Field with a comment.", "should parse triple-slash lines for message fields"); + test.equal(root.lookup("Test1.field3").comment, "Field with a comment and a link", "should parse triple-slash lines for message fields"); test.equal(root.lookup("Test3").comments.ONE, "Value with a comment.", "should parse blocks for enum values"); test.equal(root.lookup("Test3").comments.TWO, null, "should not parse lines for enum values");