From a54fbc918ef6bd627113f05049ff704e07bf33b4 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Tue, 13 Dec 2016 17:31:31 +0100 Subject: [PATCH] Provide prebuilt browser versions of the static runtime --- README.md | 4 +- dist/runtime/README.md | 33 + dist/runtime/protobuf.js | 2006 ++++++++++++++++++++++++++++++ dist/runtime/protobuf.js.map | 1 + dist/runtime/protobuf.min.js | 8 + dist/runtime/protobuf.min.js.gz | Bin 0 -> 5530 bytes dist/runtime/protobuf.min.js.map | 1 + gulpfile.js | 15 +- runtime/index.js | 29 +- scripts/bundle.js | 14 +- src/index.js | 5 +- src/util/longbits.js | 2 +- 12 files changed, 2103 insertions(+), 15 deletions(-) create mode 100644 dist/runtime/README.md create mode 100644 dist/runtime/protobuf.js create mode 100644 dist/runtime/protobuf.js.map create mode 100644 dist/runtime/protobuf.min.js create mode 100644 dist/runtime/protobuf.min.js.gz create mode 100644 dist/runtime/protobuf.min.js.map diff --git a/README.md b/README.md index 8dda94289..e1cbffedf 100644 --- a/README.md +++ b/README.md @@ -340,9 +340,9 @@ protobuf.load("bundle.json", function(err, root) { While .proto and JSON files require the full library (about 20kb gzipped), pretty much all code but the relatively short descriptors is shared. -Static code, on the other hand, requires just the runtime library (final size TBA), but generates relatively large code bases without any reflection features. +Static code, on the other hand, requires just the runtime library (about 5kb gzipped), but generates relatively large code bases without any reflection features. -There is no difference performance-wise as the code that is generated statically is the same generated at runtime. +When `new Function` is supported (and it usually is), there is no difference performance-wise as the code generated statically is the same generated at runtime. ### Generating TypeScript definitions from static modules diff --git a/dist/runtime/README.md b/dist/runtime/README.md new file mode 100644 index 000000000..73847f296 --- /dev/null +++ b/dist/runtime/README.md @@ -0,0 +1,33 @@ +This folder contains prebuilt browser versions of [protobuf.js](https://github.com/dcodeIO/protobuf.js)'s runtime for statically generated code. When sending pull requests, it is not required to update these. + +**NOTE:** The static code runtime includes just the bare minimum required to work with statically generated modules - and *nothing else*. Where applicable, it can be used as a drop-in replacement for the full library as it has the same general structure. + +Prebuilt files are in source control to enable pain-free frontend respectively CDN usage: + +CDN usage +--------- + +Development: +``` + +``` + +Production: +``` + +``` + +**NOTE:** Remember to replace the version tag with the exact [release](https://github.com/dcodeIO/protobuf.js/releases) your project depends upon. + +Frontend usage +-------------- + +Development: +``` + +``` + +Production: +``` + +``` diff --git a/dist/runtime/protobuf.js b/dist/runtime/protobuf.js new file mode 100644 index 000000000..bf3581fb9 --- /dev/null +++ b/dist/runtime/protobuf.js @@ -0,0 +1,2006 @@ +/*! + * protobuf.js v6.1.0 (c) 2016 Daniel Wirtz + * Compiled Tue, 13 Dec 2016 16:30:43 UTC + * Licensed under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/protobuf.js for details + */ +(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> 1, + nBits = -7, + i = isBE ? 0 : (nBytes - 1), + d = isBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & ((1 << (-nBits)) - 1); + s >>= (-nBits); + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & ((1 << (-nBits)) - 1); + e >>= (-nBits); + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity); + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; + +exports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) { + var e, m, c, + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0), + i = isBE ? (nBytes - 1) : 0, + d = isBE ? -1 : 1, + s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; +}; + +},{}],2:[function(require,module,exports){ +"use strict"; + +/** + * A minimal base64 implementation for number arrays. + * @memberof util + * @namespace + */ +var base64 = exports; + +/** + * Calculates the byte length of a base64 encoded string. + * @param {string} string Base64 encoded string + * @returns {number} Byte length + */ +base64.length = function length(string) { + var p = string.length; + if (!p) + return 0; + var n = 0; + while (--p % 4 > 1 && string.charAt(p) === '=') + ++n; + return Math.ceil(string.length * 3) / 4 - n; +}; + +// Base64 encoding table +var b64 = []; + +// Base64 decoding table +var s64 = []; + +// 65..90, 97..122, 48..57, 43, 47 +for (var i = 0; i < 64;) + s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++; + +/** + * Encodes a buffer to a base64 encoded string. + * @param {Uint8Array} buffer Source buffer + * @param {number} start Source start + * @param {number} end Source end + * @returns {string} Base64 encoded string + */ +base64.encode = function encode(buffer, start, end) { + var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4); + var i = 0, // output index + j = 0, // goto index + t; // temporary + while (start < end) { + var b = buffer[start++]; + switch (j) { + case 0: + string[i++] = b64[b >> 2]; + t = (b & 3) << 4; + j = 1; + break; + case 1: + string[i++] = b64[t | b >> 4]; + t = (b & 15) << 2; + j = 2; + break; + case 2: + string[i++] = b64[t | b >> 6]; + string[i++] = b64[b & 63]; + j = 0; + break; + } + } + if (j) { + string[i++] = b64[t]; + string[i ] = 61; + if (j === 1) + string[i + 1] = 61; + } + return String.fromCharCode.apply(String, string); +}; + +var invalidEncoding = "invalid encoding"; + +/** + * Decodes a base64 encoded string to a buffer. + * @param {string} string Source string + * @param {Uint8Array} buffer Destination buffer + * @param {number} offset Destination offset + * @returns {number} Number of bytes written + * @throws {Error} If encoding is invalid + */ +base64.decode = function decode(string, buffer, offset) { + var start = offset; + var j = 0, // goto index + t; // temporary + for (var i = 0; i < string.length;) { + var c = string.charCodeAt(i++); + if (c === 61 && j > 1) + break; + if ((c = s64[c]) === undefined) + throw Error(invalidEncoding); + switch (j) { + case 0: + t = c; + j = 1; + break; + case 1: + buffer[offset++] = t << 2 | (c & 48) >> 4; + t = c; + j = 2; + break; + case 2: + buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2; + t = c; + j = 3; + break; + case 3: + buffer[offset++] = (t & 3) << 6 | c; + j = 0; + break; + } + } + if (j === 1) + throw Error(invalidEncoding); + return offset - start; +}; + +},{}],3:[function(require,module,exports){ +"use strict"; +module.exports = pool; + +/** + * An allocator as used by {@link util.pool}. + * @typedef PoolAllocator + * @type {function} + * @param {number} size Buffer size + * @returns {Uint8Array} Buffer + */ + +/** + * A slicer as used by {@link util.pool}. + * @typedef PoolSlicer + * @type {function} + * @param {number} start Start offset + * @param {number} end End offset + * @returns {Uint8Array} Buffer slice + * @this {Uint8Array} + */ + +/** + * A general purpose buffer pool. + * @memberof util + * @function + * @param {PoolAllocator} alloc Allocator + * @param {PoolSlicer} slice Slicer + * @param {number} [size=8192] Slab size + * @returns {PoolAllocator} Pooled allocator + */ +function pool(alloc, slice, size) { + var SIZE = size || 8192; + var MAX = SIZE >>> 1; + var slab = null; + var offset = SIZE; + return function pool_alloc(size) { + if (size > MAX) + return alloc(size); + if (offset + size > SIZE) { + slab = alloc(SIZE); + offset = 0; + } + var buf = slice.call(slab, offset, offset += size); + if (offset & 7) // align to 32 bit + offset = (offset | 7) + 1; + return buf; + }; +} + +},{}],4:[function(require,module,exports){ +"use strict"; + +/** + * A minimal UTF8 implementation for number arrays. + * @memberof util + * @namespace + */ +var utf8 = exports; + +/** + * Calculates the UTF8 byte length of a string. + * @param {string} string String + * @returns {number} Byte length + */ +utf8.length = function length(string) { + var len = 0, + c = 0; + for (var i = 0; i < string.length; ++i) { + c = string.charCodeAt(i); + if (c < 128) + len += 1; + else if (c < 2048) + len += 2; + else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) { + ++i; + len += 4; + } else + len += 3; + } + return len; +}; + +/** + * Reads UTF8 bytes as a string. + * @param {Uint8Array} buffer Source buffer + * @param {number} start Source start + * @param {number} end Source end + * @returns {string} String read + */ +utf8.read = function(buffer, start, end) { + var len = end - start; + if (len < 1) + return ""; + var string = [], + i = 0, // char offset + t; // temporary + while (start < end) { + t = buffer[start++]; + if (t < 128) + string[i++] = t; + else if (t > 191 && t < 224) + string[i++] = (t & 31) << 6 | buffer[start++] & 63; + else if (t > 239 && t < 365) { + t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000; + string[i++] = 0xD800 + (t >> 10); + string[i++] = 0xDC00 + (t & 1023); + } else + string[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63; + } + return String.fromCharCode.apply(String, string.slice(0, i)); +}; + +/** + * Writes a string as UTF8 bytes. + * @param {string} string Source string + * @param {Uint8Array} buffer Destination buffer + * @param {number} offset Destination offset + * @returns {number} Bytes written + */ +utf8.write = function(string, buffer, offset) { + var start = offset, + c1, // character 1 + c2; // character 2 + for (var i = 0; i < string.length; ++i) { + c1 = string.charCodeAt(i); + if (c1 < 128) { + buffer[offset++] = c1; + } else if (c1 < 2048) { + buffer[offset++] = c1 >> 6 | 192; + buffer[offset++] = c1 & 63 | 128; + } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) { + c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF); + ++i; + buffer[offset++] = c1 >> 18 | 240; + buffer[offset++] = c1 >> 12 & 63 | 128; + buffer[offset++] = c1 >> 6 & 63 | 128; + buffer[offset++] = c1 & 63 | 128; + } else { + buffer[offset++] = c1 >> 12 | 224; + buffer[offset++] = c1 >> 6 & 63 | 128; + buffer[offset++] = c1 & 63 | 128; + } + } + return offset - start; +}; + +},{}],5:[function(require,module,exports){ +// This file exports just the bare minimum required to work with statically generated code. +// Can be used as a drop-in replacement for the full library as it has the same general structure. +var protobuf = exports; + + var Writer = +protobuf.Writer = require(9); +protobuf.BufferWriter = Writer.BufferWriter; + var Reader = +protobuf.Reader = require(6); +protobuf.BufferReader = Reader.BufferReader; +protobuf.util = require(8); + +function configure() { + Reader._configure(); +} + +protobuf.configure = configure; + +// Be nice to AMD +if (typeof define === "function" && define.amd) + define(["long"], function(Long) { + if (Long) { + protobuf.util.Long = Long; + configure(); + } + return protobuf; + }); + +},{"6":6,"8":8,"9":9}],6:[function(require,module,exports){ +"use strict"; +module.exports = Reader; + +Reader.BufferReader = BufferReader; + +var util = require(8), + ieee754 = require(1); +var LongBits = util.LongBits, + utf8 = util.utf8; +var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + +function indexOutOfRange(reader, writeLength) { + return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); +} + +/** + * Constructs a new reader instance using the specified buffer. + * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`. + * @constructor + * @param {Uint8Array} buffer Buffer to read from + */ +function Reader(buffer) { + + /** + * Read buffer. + * @type {Uint8Array} + */ + this.buf = buffer; + + /** + * Read buffer position. + * @type {number} + */ + this.pos = 0; + + /** + * Read buffer length. + * @type {number} + */ + this.len = buffer.length; +} + +/** + * Creates a new reader using the specified buffer. + * @param {Uint8Array} buffer Buffer to read from + * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader} + */ +Reader.create = function create(buffer) { + return new (util.Buffer && util.Buffer.isBuffer(buffer) && BufferReader || Reader)(buffer); +}; + +/** @alias Reader.prototype */ +var ReaderPrototype = Reader.prototype; + +ReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice; + +/** + * Tag read. + * @constructor + * @param {number} id Field id + * @param {number} wireType Wire type + * @ignore + */ +function Tag(id, wireType) { + this.id = id; + this.wireType = wireType; +} + +/** + * Reads a tag. + * @returns {{id: number, wireType: number}} Field id and wire type + */ +ReaderPrototype.tag = function read_tag() { + if (this.pos >= this.len) + throw indexOutOfRange(this); + return new Tag(this.buf[this.pos] >>> 3, this.buf[this.pos++] & 7); +}; + +/** + * Reads a varint as a signed 32 bit value. + * @returns {number} Value read + */ +ReaderPrototype.int32 = function read_int32() { + // 1 byte + var octet = this.buf[this.pos++], + value = octet & 127; + if (octet > 127) { // false if octet is undefined (pos >= len) + // 2 bytes + octet = this.buf[this.pos++]; + value |= (octet & 127) << 7; + if (octet > 127) { + // 3 bytes + octet = this.buf[this.pos++]; + value |= (octet & 127) << 14; + if (octet > 127) { + // 4 bytes + octet = this.buf[this.pos++]; + value |= (octet & 127) << 21; + if (octet > 127) { + // 5 bytes + octet = this.buf[this.pos++]; + value |= octet << 28; + if (octet > 127) { + // 6..10 bytes (sign extended) + this.pos += 5; + } + } + } + } + } + if (this.pos > this.len) { + this.pos = this.len; + throw indexOutOfRange(this); + } + return value; +}; + +/** + * Reads a varint as an unsigned 32 bit value. + * @returns {number} Value read + */ +ReaderPrototype.uint32 = function read_uint32() { + return this.int32() >>> 0; +}; + +/** + * Reads a zig-zag encoded varint as a signed 32 bit value. + * @returns {number} Value read + */ +ReaderPrototype.sint32 = function read_sint32() { + var value = this.int32(); + return value >>> 1 ^ -(value & 1); +}; + +/* eslint-disable no-invalid-this */ + +function readLongVarint() { + var lo = 0, hi = 0, + i = 0, b = 0; + if (this.len - this.pos > 9) { // fast route + for (i = 0; i < 4; ++i) { + b = this.buf[this.pos++]; + lo |= (b & 127) << i * 7; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + } + b = this.buf[this.pos++]; + lo |= (b & 127) << 28; + hi |= (b & 127) >> 4; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + for (i = 0; i < 5; ++i) { + b = this.buf[this.pos++]; + hi |= (b & 127) << i * 7 + 3; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + } + } else { + for (i = 0; i < 4; ++i) { + if (this.pos >= this.len) + throw indexOutOfRange(this); + b = this.buf[this.pos++]; + lo |= (b & 127) << i * 7; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + } + if (this.pos >= this.len) + throw indexOutOfRange(this); + b = this.buf[this.pos++]; + lo |= (b & 127) << 28; + hi |= (b & 127) >> 4; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + for (i = 0; i < 5; ++i) { + if (this.pos >= this.len) + throw indexOutOfRange(this); + b = this.buf[this.pos++]; + hi |= (b & 127) << i * 7 + 3; + if (b < 128) + return new LongBits(lo >>> 0, hi >>> 0); + } + } + throw Error("invalid varint encoding"); +} + +function read_int64_long() { + return readLongVarint.call(this).toLong(); +} + +function read_int64_number() { + return readLongVarint.call(this).toNumber(); +} + +function read_uint64_long() { + return readLongVarint.call(this).toLong(true); +} + +function read_uint64_number() { + return readLongVarint.call(this).toNumber(true); +} + +function read_sint64_long() { + return readLongVarint.call(this).zzDecode().toLong(); +} + +function read_sint64_number() { + return readLongVarint.call(this).zzDecode().toNumber(); +} + +/* eslint-enable no-invalid-this */ + +/** + * Reads a varint as a signed 64 bit value. + * @name Reader#int64 + * @function + * @returns {Long|number} Value read + */ + +/** + * Reads a varint as an unsigned 64 bit value. + * @name Reader#uint64 + * @function + * @returns {Long|number} Value read + */ + +/** + * Reads a zig-zag encoded varint as a signed 64 bit value. + * @name Reader#sint64 + * @function + * @returns {Long|number} Value read + */ + +/** + * Reads a varint as a boolean. + * @returns {boolean} Value read + */ +ReaderPrototype.bool = function read_bool() { + return this.int32() !== 0; +}; + +function readFixed32(buf, end) { + return buf[end - 4] + | buf[end - 3] << 8 + | buf[end - 2] << 16 + | buf[end - 1] << 24; +} + +/** + * Reads fixed 32 bits as a number. + * @returns {number} Value read + */ +ReaderPrototype.fixed32 = function read_fixed32() { + if (this.pos + 4 > this.len) + throw indexOutOfRange(this, 4); + return readFixed32(this.buf, this.pos += 4); +}; + +/** + * Reads zig-zag encoded fixed 32 bits as a number. + * @returns {number} Value read + */ +ReaderPrototype.sfixed32 = function read_sfixed32() { + var value = this.fixed32(); + return value >>> 1 ^ -(value & 1); +}; + +/* eslint-disable no-invalid-this */ + +function readFixed64(/* this: Reader */) { + if (this.pos + 8 > this.len) + throw indexOutOfRange(this, 8); + return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4)); +} + +function read_fixed64_long() { + return readFixed64.call(this).toLong(true); +} + +function read_fixed64_number() { + return readFixed64.call(this).toNumber(true); +} + +function read_sfixed64_long() { + return readFixed64.call(this).zzDecode().toLong(); +} + +function read_sfixed64_number() { + return readFixed64.call(this).zzDecode().toNumber(); +} + +/* eslint-enable no-invalid-this */ + +/** + * Reads fixed 64 bits. + * @name Reader#fixed64 + * @function + * @returns {Long|number} Value read + */ + +/** + * Reads zig-zag encoded fixed 64 bits. + * @name Reader#sfixed64 + * @function + * @returns {Long|number} Value read + */ + +var readFloat = typeof Float32Array !== "undefined" + ? (function() { // eslint-disable-line wrap-iife + var f32 = new Float32Array(1), + f8b = new Uint8Array(f32.buffer); + f32[0] = -0; + return f8b[3] // already le? + ? function readFloat_f32(buf, pos) { + f8b[0] = buf[pos ]; + f8b[1] = buf[pos + 1]; + f8b[2] = buf[pos + 2]; + f8b[3] = buf[pos + 3]; + return f32[0]; + } + : function readFloat_f32_le(buf, pos) { + f8b[3] = buf[pos ]; + f8b[2] = buf[pos + 1]; + f8b[1] = buf[pos + 2]; + f8b[0] = buf[pos + 3]; + return f32[0]; + }; + })() + : function readFloat_ieee754(buf, pos) { + return ieee754.read(buf, pos, false, 23, 4); + }; + +/** + * Reads a float (32 bit) as a number. + * @function + * @returns {number} Value read + */ +ReaderPrototype.float = function read_float() { + if (this.pos + 4 > this.len) + throw indexOutOfRange(this, 4); + var value = readFloat(this.buf, this.pos); + this.pos += 4; + return value; +}; + +var readDouble = typeof Float64Array !== "undefined" + ? (function() { // eslint-disable-line wrap-iife + var f64 = new Float64Array(1), + f8b = new Uint8Array(f64.buffer); + f64[0] = -0; + return f8b[7] // already le? + ? function readDouble_f64(buf, pos) { + f8b[0] = buf[pos ]; + f8b[1] = buf[pos + 1]; + f8b[2] = buf[pos + 2]; + f8b[3] = buf[pos + 3]; + f8b[4] = buf[pos + 4]; + f8b[5] = buf[pos + 5]; + f8b[6] = buf[pos + 6]; + f8b[7] = buf[pos + 7]; + return f64[0]; + } + : function readDouble_f64_le(buf, pos) { + f8b[7] = buf[pos ]; + f8b[6] = buf[pos + 1]; + f8b[5] = buf[pos + 2]; + f8b[4] = buf[pos + 3]; + f8b[3] = buf[pos + 4]; + f8b[2] = buf[pos + 5]; + f8b[1] = buf[pos + 6]; + f8b[0] = buf[pos + 7]; + return f64[0]; + }; + })() + : function readDouble_ieee754(buf, pos) { + return ieee754.read(buf, pos, false, 52, 8); + }; + +/** + * Reads a double (64 bit float) as a number. + * @function + * @returns {number} Value read + */ +ReaderPrototype.double = function read_double() { + if (this.pos + 8 > this.len) + throw indexOutOfRange(this, 4); + var value = readDouble(this.buf, this.pos); + this.pos += 8; + return value; +}; + +/** + * Reads a sequence of bytes preceeded by its length as a varint. + * @returns {Uint8Array} Value read + */ +ReaderPrototype.bytes = function read_bytes() { + var length = this.int32() >>> 0, + start = this.pos, + end = this.pos + length; + if (end > this.len) + throw indexOutOfRange(this, length); + this.pos += length; + return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1 + ? new this.buf.constructor(0) + : this._slice.call(this.buf, start, end); +}; + +/** + * Reads a string preceeded by its byte length as a varint. + * @returns {string} Value read + */ +ReaderPrototype.string = function read_string() { + var bytes = this.bytes(); + return utf8.read(bytes, 0, bytes.length); +}; + +/** + * Skips the specified number of bytes if specified, otherwise skips a varint. + * @param {number} [length] Length if known, otherwise a varint is assumed + * @returns {Reader} `this` + */ +ReaderPrototype.skip = function skip(length) { + if (length === undefined) { + do { + if (this.pos >= this.len) + throw indexOutOfRange(this); + } while (this.buf[this.pos++] & 128); + } else { + if (this.pos + length > this.len) + throw indexOutOfRange(this, length); + this.pos += length; + } + return this; +}; + +/** + * Skips the next element of the specified wire type. + * @param {number} wireType Wire type received + * @returns {Reader} `this` + */ +ReaderPrototype.skipType = function(wireType) { + switch (wireType) { + case 0: + this.skip(); + break; + case 1: + this.skip(8); + break; + case 2: + this.skip(this.uint32()); + break; + case 3: + do { // eslint-disable-line no-constant-condition + var tag = this.tag(); + if (tag.wireType === 4) + break; + this.skipType(tag.wireType); + } while (true); + break; + case 5: + this.skip(4); + break; + default: + throw Error("invalid wire type: " + wireType); + } + return this; +}; + +/** + * Resets this instance and frees all resources. + * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations + * @returns {Reader} `this` + */ +ReaderPrototype.reset = function reset(buffer) { + if (buffer) { + this.buf = buffer; + this.len = buffer.length; + } else { + this.buf = null; // makes it throw + this.len = 0; + } + this.pos = 0; + return this; +}; + +/** + * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer. + * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations + * @returns {Uint8Array} Finished buffer + */ +ReaderPrototype.finish = function finish(buffer) { + var remain = this.pos + ? this._slice.call(this.buf, this.pos) + : this.buf; + this.reset(buffer); + return remain; +}; + +// One time function to initialize BufferReader with the now-known buffer implementation's slice method +var initBufferReader = function() { + if (!util.Buffer) + throw Error("Buffer is not supported"); + BufferReaderPrototype._slice = util.Buffer.prototype.slice; + readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer + ? readStringBuffer_utf8Slice + : readStringBuffer_toString; + initBufferReader = false; +}; + +/** + * Constructs a new buffer reader instance. + * @classdesc Wire format reader using node buffers. + * @extends Reader + * @constructor + * @param {Buffer} buffer Buffer to read from + */ +function BufferReader(buffer) { + if (initBufferReader) + initBufferReader(); + Reader.call(this, buffer); +} + +/** @alias BufferReader.prototype */ +var BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype); + +BufferReaderPrototype.constructor = BufferReader; + +if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) +/** + * @override + */ +BufferReaderPrototype.float = function read_float_buffer() { + if (this.pos + 4 > this.len) + throw indexOutOfRange(this, 4); + var value = this.buf.readFloatLE(this.pos, true); + this.pos += 4; + return value; +}; + +if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) +/** + * @override + */ +BufferReaderPrototype.double = function read_double_buffer() { + if (this.pos + 8 > this.len) + throw indexOutOfRange(this, 8); + var value = this.buf.readDoubleLE(this.pos, true); + this.pos += 8; + return value; +}; + +var readStringBuffer; + +function readStringBuffer_utf8Slice(buf, start, end) { + return buf.utf8Slice(start, end); // fastest +} + +function readStringBuffer_toString(buf, start, end) { + return buf.toString("utf8", start, end); // 2nd, again assertions +} + +/** + * @override + */ +BufferReaderPrototype.string = function read_string_buffer() { + var length = this.int32() >>> 0, + start = this.pos, + end = this.pos + length; + if (end > this.len) + throw indexOutOfRange(this, length); + this.pos += length; + return readStringBuffer(this.buf, start, end); +}; + +/** + * @override + */ +BufferReaderPrototype.finish = function finish_buffer(buffer) { + var remain = this.pos ? this.buf.slice(this.pos) : this.buf; + this.reset(buffer); + return remain; +}; + +function configure() { + if (util.Long) { + ReaderPrototype.int64 = read_int64_long; + ReaderPrototype.uint64 = read_uint64_long; + ReaderPrototype.sint64 = read_sint64_long; + ReaderPrototype.fixed64 = read_fixed64_long; + ReaderPrototype.sfixed64 = read_sfixed64_long; + } else { + ReaderPrototype.int64 = read_int64_number; + ReaderPrototype.uint64 = read_uint64_number; + ReaderPrototype.sint64 = read_sint64_number; + ReaderPrototype.fixed64 = read_fixed64_number; + ReaderPrototype.sfixed64 = read_sfixed64_number; + } +} + +Reader._configure = configure; + +configure(); + +},{"1":1,"8":8}],7:[function(require,module,exports){ +"use strict"; + +module.exports = LongBits; + +var util = require(8); + +/** + * Any compatible Long instance. + * @typedef Long + * @type {Object} + * @property {number} low Low bits + * @property {number} high High bits + * @property {boolean} unsigned Whether unsigned or not + */ + +/** + * Constructs new long bits. + * @classdesc Helper class for working with the low and high bits of a 64 bit value. + * @memberof util + * @constructor + * @param {number} lo Low bits + * @param {number} hi High bits + */ +function LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization + + /** + * Low bits. + * @type {number} + */ + this.lo = lo; + + /** + * High bits. + * @type {number} + */ + this.hi = hi; +} + +/** @alias util.LongBits.prototype */ +var LongBitsPrototype = LongBits.prototype; + +/** + * Zero bits. + * @memberof util.LongBits + * @type {util.LongBits} + */ +var zero = LongBits.zero = new LongBits(0, 0); + +zero.toNumber = function() { return 0; }; +zero.zzEncode = zero.zzDecode = function() { return this; }; +zero.length = function() { return 1; }; + +/** + * Constructs new long bits from the specified number. + * @param {number} value Value + * @returns {util.LongBits} Instance + */ +LongBits.fromNumber = function fromNumber(value) { + if (value === 0) + return zero; + var sign = value < 0; + value = Math.abs(value); + var lo = value >>> 0, + hi = (value - lo) / 4294967296 >>> 0; + if (sign) { + hi = ~hi >>> 0; + lo = ~lo >>> 0; + if (++lo > 4294967295) { + lo = 0; + if (++hi > 4294967295) + hi = 0; + } + } + return new LongBits(lo, hi); +}; + +/** + * Constructs new long bits from a number, long or string. + * @param {Long|number|string} value Value + * @returns {util.LongBits} Instance + */ +LongBits.from = function from(value) { + switch (typeof value) { + case "number": + return LongBits.fromNumber(value); + case "string": + if (util.Long) + value = util.Long.fromString(value); + // fallthrough + else + return LongBits.fromNumber(parseInt(value, 10)); + } + return (value.low || value.high) && new LongBits(value.low >>> 0, value.high >>> 0) || zero; +}; + +/** + * Converts this long bits to a possibly unsafe JavaScript number. + * @param {boolean} [unsigned=false] Whether unsigned or not + * @returns {number} Possibly unsafe number + */ +LongBitsPrototype.toNumber = function toNumber(unsigned) { + if (!unsigned && this.hi >>> 31) { + this.lo = ~this.lo + 1 >>> 0; + this.hi = ~this.hi >>> 0; + if (!this.lo) + this.hi = this.hi + 1 >>> 0; + return -(this.lo + this.hi * 4294967296); + } + return this.lo + this.hi * 4294967296; +}; + +/** + * Converts this long bits to a long. + * @param {boolean} [unsigned=false] Whether unsigned or not + * @returns {Long} Long + */ +LongBitsPrototype.toLong = function toLong(unsigned) { + return util.Long + ? new util.Long(this.lo, this.hi, unsigned) + : { low: this.lo, high: this.hi, unsigned: Boolean(unsigned) }; +}; + +var charCodeAt = String.prototype.charCodeAt; + +/** + * Constructs new long bits from the specified 8 characters long hash. + * @param {string} hash Hash + * @returns {util.LongBits} Bits + */ +LongBits.fromHash = function fromHash(hash) { + return new LongBits( + ( charCodeAt.call(hash, 0) + | charCodeAt.call(hash, 1) << 8 + | charCodeAt.call(hash, 2) << 16 + | charCodeAt.call(hash, 3) << 24) >>> 0 + , + ( charCodeAt.call(hash, 4) + | charCodeAt.call(hash, 5) << 8 + | charCodeAt.call(hash, 6) << 16 + | charCodeAt.call(hash, 7) << 24) >>> 0 + ); +}; + +/** + * Converts this long bits to a 8 characters long hash. + * @returns {string} Hash + */ +LongBitsPrototype.toHash = function toHash() { + return String.fromCharCode( + this.lo & 255, + this.lo >>> 8 & 255, + this.lo >>> 16 & 255, + this.lo >>> 24 & 255, + this.hi & 255, + this.hi >>> 8 & 255, + this.hi >>> 16 & 255, + this.hi >>> 24 & 255 + ); +}; + +/** + * Zig-zag encodes this long bits. + * @returns {util.LongBits} `this` + */ +LongBitsPrototype.zzEncode = function zzEncode() { + var mask = this.hi >> 31; + this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0; + this.lo = ( this.lo << 1 ^ mask) >>> 0; + return this; +}; + +/** + * Zig-zag decodes this long bits. + * @returns {util.LongBits} `this` + */ +LongBitsPrototype.zzDecode = function zzDecode() { + var mask = -(this.lo & 1); + this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0; + this.hi = ( this.hi >>> 1 ^ mask) >>> 0; + return this; +}; + +/** + * Calculates the length of this longbits when encoded as a varint. + * @returns {number} Length + */ +LongBitsPrototype.length = function length() { + var part0 = this.lo, + part1 = (this.lo >>> 28 | this.hi << 4) >>> 0, + part2 = this.hi >>> 24; + if (part2 === 0) { + if (part1 === 0) + return part0 < 1 << 14 + ? part0 < 1 << 7 ? 1 : 2 + : part0 < 1 << 21 ? 3 : 4; + return part1 < 1 << 14 + ? part1 < 1 << 7 ? 5 : 6 + : part1 < 1 << 21 ? 7 : 8; + } + return part2 < 1 << 7 ? 9 : 10; +}; + +},{"8":8}],8:[function(require,module,exports){ +(function (global){ +"use strict"; + +var util = exports; + +var LongBits = util.LongBits = require(7); + +util.base64 = require(2); +util.utf8 = require(4); +util.pool = require(3); + +/** + * Whether running within node or not. + * @memberof util + * @type {boolean} + */ +var isNode = util.isNode = Boolean(global.process && global.process.versions && global.process.versions.node); + +/** + * Optional buffer class to use. + * If you assign any compatible buffer implementation to this property, the library will use it. + * @type {*} + */ +util.Buffer = null; + +if (isNode) + try { util.Buffer = require("buffer").Buffer; } catch (e) {} // eslint-disable-line no-empty + +/** + * Optional Long class to use. + * If you assign any compatible long implementation to this property, the library will use it. + * @type {*} + */ +util.Long = global.dcodeIO && global.dcodeIO.Long || null; + +if (!util.Long && isNode) + try { util.Long = require("long"); } catch (e) {} // eslint-disable-line no-empty + +/** + * Tests if the specified value is an integer. + * @function + * @param {*} value Value to test + * @returns {boolean} `true` if the value is an integer + */ +util.isInteger = Number.isInteger || function isInteger(value) { + return typeof value === "number" && isFinite(value) && Math.floor(value) === value; +}; + +/** + * Tests if the specified value is a string. + * @param {*} value Value to test + * @returns {boolean} `true` if the value is a string + */ +util.isString = function isString(value) { + return typeof value === "string" || value instanceof String; +}; + +/** + * Tests if the specified value is a non-null object. + * @param {*} value Value to test + * @returns {boolean} `true` if the value is a non-null object + */ +util.isObject = function isObject(value) { + return Boolean(value && typeof value === "object"); +}; + +/** + * Converts a number or long to an 8 characters long hash string. + * @param {Long|number} value Value to convert + * @returns {string} Hash + */ +util.longToHash = function longToHash(value) { + return value + ? LongBits.from(value).toHash() + : "\0\0\0\0\0\0\0\0"; +}; + +/** + * Converts an 8 characters long hash string to a long or number. + * @param {string} hash Hash + * @param {boolean} [unsigned=false] Whether unsigned or not + * @returns {Long|number} Original value + */ +util.longFromHash = function longFromHash(hash, unsigned) { + var bits = LongBits.fromHash(hash); + if (util.Long) + return util.Long.fromBits(bits.lo, bits.hi, unsigned); + return bits.toNumber(Boolean(unsigned)); +}; + +/** + * Tests if two possibly long values are not equal. + * @param {number|Long} a First value + * @param {number|Long} b Second value + * @returns {boolean} `true` if not equal + */ +util.longNeq = function longNeq(a, b) { + return typeof a === "number" + ? typeof b === "number" + ? a !== b + : (a = LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high + : typeof b === "number" + ? (b = LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high + : a.low !== b.low || a.high !== b.high; +}; + +/** + * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments. + * @param {Object} target Target object + * @param {Object} descriptors Property descriptors + * @returns {undefined} + */ +util.props = function props(target, descriptors) { + Object.keys(descriptors).forEach(function(key) { + util.prop(target, key, descriptors[key]); + }); +}; + +/** + * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments. + * @param {Object} target Target object + * @param {string} key Property name + * @param {Object} descriptor Property descriptor + * @returns {undefined} + */ +util.prop = function prop(target, key, descriptor) { + var ie8 = !-[1,]; + var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1); + if (descriptor.get) + target["get" + ucKey] = descriptor.get; + if (descriptor.set) + target["set" + ucKey] = ie8 + ? function(value) { + descriptor.set.call(this, value); + this[key] = value; + } + : descriptor.set; + if (ie8) { + if (descriptor.value !== undefined) + target[key] = descriptor.value; + } else + Object.defineProperty(target, key, descriptor); +}; + +/** + * An immuable empty array. + * @memberof util + * @type {Array.<*>} + */ +util.emptyArray = Object.freeze([]); + +/** + * An immutable empty object. + * @type {Object} + */ +util.emptyObject = Object.freeze({}); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"2":2,"3":3,"4":4,"7":7,"buffer":"buffer","long":"long"}],9:[function(require,module,exports){ +"use strict"; +module.exports = Writer; + +Writer.BufferWriter = BufferWriter; + +var util = require(8), + ieee754 = require(1); +var LongBits = util.LongBits, + base64 = util.base64, + utf8 = util.utf8; +var ArrayImpl = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + +/** + * Constructs a new writer operation instance. + * @classdesc Scheduled writer operation. + * @memberof Writer + * @constructor + * @param {function(*, Uint8Array, number)} fn Function to call + * @param {*} val Value to write + * @param {number} len Value byte length + * @private + * @ignore + */ +function Op(fn, val, len) { + + /** + * Function to call. + * @type {function(Uint8Array, number, *)} + */ + this.fn = fn; + + /** + * Value to write. + * @type {*} + */ + this.val = val; + + /** + * Value byte length. + * @type {number} + */ + this.len = len; + + /** + * Next operation. + * @type {?Writer.Op} + */ + this.next = null; +} + +Writer.Op = Op; + +function noop() {} // eslint-disable-line no-empty-function + +/** + * Constructs a new writer state instance. + * @classdesc Copied writer state. + * @memberof Writer + * @constructor + * @param {Writer} writer Writer to copy state from + * @param {State} next Next state entry + * @private + * @ignore + */ +function State(writer, next) { + + /** + * Current head. + * @type {Writer.Op} + */ + this.head = writer.head; + + /** + * Current tail. + * @type {Writer.Op} + */ + this.tail = writer.tail; + + /** + * Current buffer length. + * @type {number} + */ + this.len = writer.len; + + /** + * Next state. + * @type {?State} + */ + this.next = next; +} + +Writer.State = State; + +/** + * Constructs a new writer instance. + * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`. + * @constructor + */ +function Writer() { + + /** + * Current length. + * @type {number} + */ + this.len = 0; + + /** + * Operations head. + * @type {Object} + */ + this.head = new Op(noop, 0, 0); + + /** + * Operations tail + * @type {Object} + */ + this.tail = this.head; + + /** + * Linked forked states. + * @type {?Object} + */ + this.states = null; + + // When a value is written, the writer calculates its byte length and puts it into a linked + // list of operations to perform when finish() is called. This both allows us to allocate + // buffers of the exact required size and reduces the amount of work we have to do compared + // to first calculating over objects and then encoding over objects. In our case, the encoding + // part is just a linked list walk calling linked operations with already prepared values. +} + +/** + * Creates a new writer. + * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer} + */ +Writer.create = function create() { + return new (util.Buffer && BufferWriter || Writer); +}; + +/** + * Allocates a buffer of the specified size. + * @param {number} size Buffer size + * @returns {Uint8Array} Buffer + */ +Writer.alloc = function alloc(size) { + return new ArrayImpl(size); +}; + +// Use Uint8Array buffer pool in the browser, just like node does with buffers +if (ArrayImpl !== Array) + Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice); + +/** @alias Writer.prototype */ +var WriterPrototype = Writer.prototype; + +/** + * Pushes a new operation to the queue. + * @param {function(Uint8Array, number, *)} fn Function to call + * @param {number} len Value byte length + * @param {number} val Value to write + * @returns {Writer} `this` + */ +WriterPrototype.push = function push(fn, len, val) { + var op = new Op(fn, val, len); + this.tail.next = op; + this.tail = op; + this.len += len; + return this; +}; + +function writeByte(val, buf, pos) { + buf[pos] = val & 255; +} + +/** + * Writes a tag. + * @param {number} id Field id + * @param {number} wireType Wire type + * @returns {Writer} `this` + */ +WriterPrototype.tag = function write_tag(id, wireType) { + return this.push(writeByte, 1, id << 3 | wireType & 7); +}; + +function writeVarint32(val, buf, pos) { + while (val > 127) { + buf[pos++] = val & 127 | 128; + val >>>= 7; + } + buf[pos] = val; +} + +/** + * Writes an unsigned 32 bit value as a varint. + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.uint32 = function write_uint32(value) { + value >>>= 0; + return value < 128 + ? this.push(writeByte, 1, value) + : this.push(writeVarint32, + value < 16384 ? 2 + : value < 2097152 ? 3 + : value < 268435456 ? 4 + : 5 + , value); +}; + +/** + * Writes a signed 32 bit value as a varint. + * @function + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.int32 = function write_int32(value) { + return value < 0 + ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec + : this.uint32(value); +}; + +/** + * Writes a 32 bit value as a varint, zig-zag encoded. + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.sint32 = function write_sint32(value) { + return this.uint32(value << 1 ^ value >> 31); +}; + +function writeVarint64(val, buf, pos) { + // tends to deoptimize. stays optimized when using bits directly. + while (val.hi) { + buf[pos++] = val.lo & 127 | 128; + val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0; + val.hi >>>= 7; + } + while (val.lo > 127) { + buf[pos++] = val.lo & 127 | 128; + val.lo = val.lo >>> 7; + } + buf[pos++] = val.lo; +} + +/** + * Writes an unsigned 64 bit value as a varint. + * @param {Long|number|string} value Value to write + * @returns {Writer} `this` + * @throws {TypeError} If `value` is a string and no long library is present. + */ +WriterPrototype.uint64 = function write_uint64(value) { + var bits = LongBits.from(value); + return this.push(writeVarint64, bits.length(), bits); +}; + +/** + * Writes a signed 64 bit value as a varint. + * @function + * @param {Long|number|string} value Value to write + * @returns {Writer} `this` + * @throws {TypeError} If `value` is a string and no long library is present. + */ +WriterPrototype.int64 = WriterPrototype.uint64; + +/** + * Writes a signed 64 bit value as a varint, zig-zag encoded. + * @param {Long|number|string} value Value to write + * @returns {Writer} `this` + * @throws {TypeError} If `value` is a string and no long library is present. + */ +WriterPrototype.sint64 = function write_sint64(value) { + var bits = LongBits.from(value).zzEncode(); + return this.push(writeVarint64, bits.length(), bits); +}; + +/** + * Writes a boolish value as a varint. + * @param {boolean} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.bool = function write_bool(value) { + return this.push(writeByte, 1, value ? 1 : 0); +}; + +function writeFixed32(val, buf, pos) { + buf[pos++] = val & 255; + buf[pos++] = val >>> 8 & 255; + buf[pos++] = val >>> 16 & 255; + buf[pos ] = val >>> 24; +} + +/** + * Writes a 32 bit value as fixed 32 bits. + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.fixed32 = function write_fixed32(value) { + return this.push(writeFixed32, 4, value >>> 0); +}; + +/** + * Writes a 32 bit value as fixed 32 bits, zig-zag encoded. + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.sfixed32 = function write_sfixed32(value) { + return this.push(writeFixed32, 4, value << 1 ^ value >> 31); +}; + +/** + * Writes a 64 bit value as fixed 64 bits. + * @param {Long|number|string} value Value to write + * @returns {Writer} `this` + * @throws {TypeError} If `value` is a string and no long library is present. + */ +WriterPrototype.fixed64 = function write_fixed64(value) { + var bits = LongBits.from(value); + return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi); +}; + +/** + * Writes a 64 bit value as fixed 64 bits, zig-zag encoded. + * @param {Long|number|string} value Value to write + * @returns {Writer} `this` + * @throws {TypeError} If `value` is a string and no long library is present. + */ +WriterPrototype.sfixed64 = function write_sfixed64(value) { + var bits = LongBits.from(value).zzEncode(); + return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi); +}; + +var writeFloat = typeof Float32Array !== "undefined" + ? (function() { // eslint-disable-line wrap-iife + var f32 = new Float32Array(1), + f8b = new Uint8Array(f32.buffer); + f32[0] = -0; + return f8b[3] // already le? + ? function writeFloat_f32(val, buf, pos) { + f32[0] = val; + buf[pos++] = f8b[0]; + buf[pos++] = f8b[1]; + buf[pos++] = f8b[2]; + buf[pos ] = f8b[3]; + } + : function writeFloat_f32_le(val, buf, pos) { + f32[0] = val; + buf[pos++] = f8b[3]; + buf[pos++] = f8b[2]; + buf[pos++] = f8b[1]; + buf[pos ] = f8b[0]; + }; + })() + : function writeFloat_ieee754(val, buf, pos) { + ieee754.write(buf, val, pos, false, 23, 4); + }; + +/** + * Writes a float (32 bit). + * @function + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.float = function write_float(value) { + return this.push(writeFloat, 4, value); +}; + +var writeDouble = typeof Float64Array !== "undefined" + ? (function() { // eslint-disable-line wrap-iife + var f64 = new Float64Array(1), + f8b = new Uint8Array(f64.buffer); + f64[0] = -0; + return f8b[7] // already le? + ? function writeDouble_f64(val, buf, pos) { + f64[0] = val; + buf[pos++] = f8b[0]; + buf[pos++] = f8b[1]; + buf[pos++] = f8b[2]; + buf[pos++] = f8b[3]; + buf[pos++] = f8b[4]; + buf[pos++] = f8b[5]; + buf[pos++] = f8b[6]; + buf[pos ] = f8b[7]; + } + : function writeDouble_f64_le(val, buf, pos) { + f64[0] = val; + buf[pos++] = f8b[7]; + buf[pos++] = f8b[6]; + buf[pos++] = f8b[5]; + buf[pos++] = f8b[4]; + buf[pos++] = f8b[3]; + buf[pos++] = f8b[2]; + buf[pos++] = f8b[1]; + buf[pos ] = f8b[0]; + }; + })() + : function writeDouble_ieee754(val, buf, pos) { + ieee754.write(buf, val, pos, false, 52, 8); + }; + +/** + * Writes a double (64 bit float). + * @function + * @param {number} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.double = function write_double(value) { + return this.push(writeDouble, 8, value); +}; + +var writeBytes = ArrayImpl.prototype.set + ? function writeBytes_set(val, buf, pos) { + buf.set(val, pos); + } + : function writeBytes_for(val, buf, pos) { + for (var i = 0; i < val.length; ++i) + buf[pos + i] = val[i]; + }; + +/** + * Writes a sequence of bytes. + * @param {Uint8Array|string} value Buffer or base64 encoded string to write + * @returns {Writer} `this` + */ +WriterPrototype.bytes = function write_bytes(value) { + var len = value.length >>> 0; + if (typeof value === "string" && len) { + var buf = Writer.alloc(len = base64.length(value)); + base64.decode(value, buf, 0); + value = buf; + } + return len + ? this.uint32(len).push(writeBytes, len, value) + : this.push(writeByte, 1, 0); +}; + +/** + * Writes a string. + * @param {string} value Value to write + * @returns {Writer} `this` + */ +WriterPrototype.string = function write_string(value) { + var len = utf8.length(value); + return len + ? this.uint32(len).push(utf8.write, len, value) + : this.push(writeByte, 1, 0); +}; + +/** + * Forks this writer's state by pushing it to a stack. + * Calling {@link Writer#}, {@link Writer#reset} or {@link Writer#finish} resets the writer to the previous state. + * @returns {Writer} `this` + */ +WriterPrototype.fork = function fork() { + this.states = new State(this, this.states); + this.head = this.tail = new Op(noop, 0, 0); + this.len = 0; + return this; +}; + +/** + * Resets this instance to the last state. + * @returns {Writer} `this` + */ +WriterPrototype.reset = function reset() { + if (this.states) { + this.head = this.states.head; + this.tail = this.states.tail; + this.len = this.states.len; + this.states = this.states.next; + } else { + this.head = this.tail = new Op(noop, 0, 0); + this.len = 0; + } + return this; +}; + +/** + * Resets to the last state and appends the fork state's current write length as a varint followed by its operations. + * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable + * @returns {Writer} `this` + */ +WriterPrototype.ldelim = function ldelim(id) { + var head = this.head, + tail = this.tail, + len = this.len; + this.reset(); + if (id !== undefined) + this.tag(id, 2); + this.uint32(len); + this.tail.next = head.next; // skip noop + this.tail = tail; + this.len += len; + return this; +}; + +/** + * Finishes the current sequence of write operations and frees all resources. + * @returns {Uint8Array} Finished buffer + */ +WriterPrototype.finish = function finish() { + var head = this.head.next, // skip noop + buf = this.constructor.alloc(this.len); + this.reset(); + var pos = 0; + while (head) { + head.fn(head.val, buf, pos); + pos += head.len; + head = head.next; + } + return buf; +}; + +/** + * Constructs a new buffer writer instance. + * @classdesc Wire format writer using node buffers. + * @exports BufferWriter + * @extends Writer + * @constructor + */ +function BufferWriter() { + Writer.call(this); +} + +/** + * Allocates a buffer of the specified size. + * @param {number} size Buffer size + * @returns {Uint8Array} Buffer + */ +BufferWriter.alloc = function alloc_buffer(size) { + BufferWriter.alloc = util.Buffer.allocUnsafe + ? util.Buffer.allocUnsafe + : function allocUnsafeNew(size) { return new util.Buffer(size); }; + return BufferWriter.alloc(size); +}; + +/** @alias BufferWriter.prototype */ +var BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype); +BufferWriterPrototype.constructor = BufferWriter; + +function writeFloatBuffer(val, buf, pos) { + buf.writeFloatLE(val, pos, true); +} + +if (typeof Float32Array === "undefined") // f32 is faster (node 6.9.1) +/** + * @override + */ +BufferWriterPrototype.float = function write_float_buffer(value) { + return this.push(writeFloatBuffer, 4, value); +}; + +function writeDoubleBuffer(val, buf, pos) { + buf.writeDoubleLE(val, pos, true); +} + +if (typeof Float64Array === "undefined") // f64 is faster (node 6.9.1) +/** + * @override + */ +BufferWriterPrototype.double = function write_double_buffer(value) { + return this.push(writeDoubleBuffer, 8, value); +}; + +function writeBytesBuffer(val, buf, pos) { + if (val.length) + val.copy(buf, pos, 0, val.length); +} + +/** + * @override + */ +BufferWriterPrototype.bytes = function write_bytes_buffer(value) { + if (typeof value === "string") + value = util.Buffer.from && util.Buffer.from(value, "base64") || new util.Buffer(value, "base64"); + var len = value.length >>> 0; + return len + ? this.uint32(len).push(writeBytesBuffer, len, value) + : this.push(writeByte, 1, 0); +}; + +var writeStringBuffer = (function() { // eslint-disable-line wrap-iife + return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer + ? function writeString_buffer_utf8Write(val, buf, pos) { + if (val.length < 40) + utf8.write(val, buf, pos); + else + buf.utf8Write(val, pos); + } + : function writeString_buffer_write(val, buf, pos) { + if (val.length < 40) + utf8.write(val, buf, pos); + else + buf.write(val, pos); + }; + // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions. + // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters. + // Unfortunately, this does not translate 1:1 to real use cases, hence the common "good enough" limit of 40. +})(); + +/** + * @override + */ +BufferWriterPrototype.string = function write_string_buffer(value) { + var len = value.length < 40 + ? utf8.length(value) + : util.Buffer.byteLength(value); + return len + ? this.uint32(len).push(writeStringBuffer, len, value) + : this.push(writeByte, 1, 0); +}; + +},{"1":1,"8":8}]},{},[5]) + + +//# sourceMappingURL=protobuf.js.map diff --git a/dist/runtime/protobuf.js.map b/dist/runtime/protobuf.js.map new file mode 100644 index 000000000..a884787a4 --- /dev/null +++ b/dist/runtime/protobuf.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/util/longbits.js","src/util/runtime.js","src/writer.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\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 = [];\r\n\r\n// Base64 decoding table\r\nvar s64 = [];\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","\"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 > 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 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(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var string = [],\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 string[i++] = t;\r\n else if (t > 191 && t < 224)\r\n string[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 string[i++] = 0xD800 + (t >> 10);\r\n string[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n string[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n }\r\n return String.fromCharCode.apply(String, string.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(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","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\n var Writer =\r\nprotobuf.Writer = require(9);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\n var Reader =\r\nprotobuf.Reader = require(6);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(8);\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\nprotobuf.configure = configure;\r\n\r\n// Be nice to AMD\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\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(8),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\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 * @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 = function create(buffer) {\r\n return new (util.Buffer && util.Buffer.isBuffer(buffer) && BufferReader || Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\n/**\r\n * Tag read.\r\n * @constructor\r\n * @param {number} id Field id\r\n * @param {number} wireType Wire type\r\n * @ignore\r\n */\r\nfunction Tag(id, wireType) {\r\n this.id = id;\r\n this.wireType = wireType;\r\n}\r\n\r\n/**\r\n * Reads a tag.\r\n * @returns {{id: number, wireType: number}} Field id and wire type\r\n */\r\nReaderPrototype.tag = function read_tag() {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n return new Tag(this.buf[this.pos] >>> 3, this.buf[this.pos++] & 7);\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\nReaderPrototype.int32 = function read_int32() {\r\n // 1 byte\r\n var octet = this.buf[this.pos++],\r\n value = octet & 127;\r\n if (octet > 127) { // false if octet is undefined (pos >= len)\r\n // 2 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 7;\r\n if (octet > 127) {\r\n // 3 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 14;\r\n if (octet > 127) {\r\n // 4 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 21;\r\n if (octet > 127) {\r\n // 5 bytes\r\n octet = this.buf[this.pos++];\r\n value |= octet << 28;\r\n if (octet > 127) {\r\n // 6..10 bytes (sign extended)\r\n this.pos += 5;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (this.pos > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this);\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n return this.int32() >>> 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\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.int32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n var lo = 0, hi = 0,\r\n i = 0, b = 0;\r\n if (this.len - this.pos > 9) { // fast route\r\n for (i = 0; i < 4; ++i) {\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << i * 7;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << 28;\r\n hi |= (b & 127) >> 4;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n for (i = 0; i < 5; ++i) {\r\n b = this.buf[this.pos++];\r\n hi |= (b & 127) << i * 7 + 3;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << i * 7;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << 28;\r\n hi |= (b & 127) >> 4;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n hi |= (b & 127) << i * 7 + 3;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n }\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\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\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\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\nReaderPrototype.bool = function read_bool() {\r\n return this.int32() !== 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;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\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\nReaderPrototype.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 if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\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\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\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() { // eslint-disable-line wrap-iife\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 : 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 : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\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\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\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() { // eslint-disable-line wrap-iife\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 : 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 : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\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\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\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\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.int32() >>> 0,\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\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\nReaderPrototype.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\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\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 } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\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\nReaderPrototype.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 var tag = this.tag();\r\n if (tag.wireType === 4)\r\n break;\r\n this.skipType(tag.wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\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 if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.int32() >>> 0,\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(8);\r\n\r\n/**\r\n * Any compatible Long instance.\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/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\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 * 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 value = Math.abs(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 switch (typeof value) {\r\n case \"number\":\r\n return LongBits.fromNumber(value);\r\n case \"string\":\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n // fallthrough\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\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.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\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, 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 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\nLongBitsPrototype.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 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\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\nLongBitsPrototype.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\nLongBitsPrototype.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\nLongBitsPrototype.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 if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nvar LongBits = util.LongBits = require(\"./longbits\");\r\n\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nvar isNode = util.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Optional buffer class to use.\r\n * If you assign any compatible buffer implementation to this property, the library will use it.\r\n * @type {*}\r\n */\r\nutil.Buffer = null;\r\n\r\nif (isNode)\r\n try { util.Buffer = require(\"buffer\").Buffer; } catch (e) {} // eslint-disable-line no-empty\r\n\r\n/**\r\n * Optional Long class to use.\r\n * If you assign any compatible long implementation to this property, the library will use it.\r\n * @type {*}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || null;\r\n\r\nif (!util.Long && isNode)\r\n try { util.Long = require(\"long\"); } catch (e) {} // eslint-disable-line no-empty\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 || 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 Boolean(value && typeof value === \"object\");\r\n};\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 ? LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\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 = 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 * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\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([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nWriter.BufferWriter = BufferWriter;\r\n\r\nvar util = require(8),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {*} val Value to write\r\n * @param {number} len Value byte length\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, val, len) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {?Writer.Op}\r\n */\r\n this.next = null;\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @param {State} next Next state entry\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer, next) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = next;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n return new (util.Buffer && BufferWriter || Writer);\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\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n var op = new Op(fn, val, len);\r\n this.tail.next = op;\r\n this.tail = op;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\n/**\r\n * Writes a tag.\r\n * @param {number} id Field id\r\n * @param {number} wireType Wire type\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.tag = function write_tag(id, wireType) {\r\n return this.push(writeByte, 1, id << 3 | wireType & 7);\r\n};\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 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 * 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\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value >>>= 0;\r\n return value < 128\r\n ? this.push(writeByte, 1, value)\r\n : this.push(writeVarint32,\r\n value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\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\nWriterPrototype.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\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32(value << 1 ^ value >> 31);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n // tends to deoptimize. stays optimized when using bits directly.\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\nWriterPrototype.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\nWriterPrototype.int64 = WriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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() { // eslint-disable-line wrap-iife\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 : 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 : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\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\nWriterPrototype.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() { // eslint-disable-line wrap-iife\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 : 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 : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\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\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\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\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\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 len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\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\nWriterPrototype.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#}, {@link Writer#reset} or {@link Writer#finish} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this, this.states);\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\nWriterPrototype.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 * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (id !== undefined)\r\n this.tag(id, 2);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of write operations and frees all resources.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len);\r\n this.reset();\r\n var 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 return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\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 BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = util.Buffer.from && util.Buffer.from(value, \"base64\") || new util.Buffer(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/runtime/protobuf.min.js b/dist/runtime/protobuf.min.js new file mode 100644 index 000000000..7a607a728 --- /dev/null +++ b/dist/runtime/protobuf.min.js @@ -0,0 +1,8 @@ +/*! + * protobuf.js v6.1.0 (c) 2016 Daniel Wirtz + * Compiled Tue, 13 Dec 2016 16:30:43 UTC + * Licensed under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/protobuf.js for details + */ +!function t(i,n,r){function e(s,u){if(!n[s]){if(!i[s]){var h="function"==typeof require&&require;if(!u&&h)return h(s,!0);if(o)return o(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var a=n[s]={exports:{}};i[s][0].call(a.exports,function(t){var n=i[s][1][t];return e(n?n:t)},a,a.exports,t,i,n,r)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s>1,a=-7,c=n?0:e-1,l=n?1:-1,p=t[i+c];for(c+=l,o=p&(1<<-a)-1,p>>=-a,a+=u;a>0;o=256*o+t[i+c],c+=l,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=r;a>0;s=256*s+t[i+c],c+=l,a-=8);if(0===o)o=1-f;else{if(o===h)return s?NaN:(p?-1:1)*(1/0);s+=Math.pow(2,r),o-=f}return(p?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,i,n,r,e,o){var s,u,h,f=8*o-e-1,a=(1<>1,l=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?o-1:0,d=r?-1:1,b=i<0||0===i&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(u=isNaN(i)?1:0,s=a):(s=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-s))<1&&(s--,h*=2),i+=s+c>=1?l/h:l*Math.pow(2,1-c),i*h>=2&&(s++,h/=2),s+c>=a?(u=0,s=a):s+c>=1?(u=(i*h-1)*Math.pow(2,e),s+=c):(u=i*Math.pow(2,c-1)*Math.pow(2,e),s=0));e>=8;t[n+p]=255&u,p+=d,u/=256,e-=8);for(s=s<0;t[n+p]=255&s,p+=d,s/=256,f-=8);t[n+p-d]|=128*b}},{}],2:[function(t,i,n){"use strict";var r=n;r.length=function(t){var i=t.length;if(!i)return 0;for(var n=0;--i%4>1&&"="===t.charAt(i);)++n;return Math.ceil(3*t.length)/4-n};for(var e=[],o=[],s=0;s<64;)o[e[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;r.encode=function(t,i,n){for(var r,o=[],s=0,u=0;i>2],r=(3&h)<<4,u=1;break;case 1:o[s++]=e[r|h>>4],r=(15&h)<<2,u=2;break;case 2:o[s++]=e[r|h>>6],o[s++]=e[63&h],u=0}}return u&&(o[s++]=e[r],o[s]=61,1===u&&(o[s+1]=61)),String.fromCharCode.apply(String,o)};var u="invalid encoding";r.decode=function(t,i,n){for(var r,e=n,s=0,h=0;h1)break;if(void 0===(f=o[f]))throw Error(u);switch(s){case 0:r=f,s=1;break;case 1:i[n++]=r<<2|(48&f)>>4,r=f,s=2;break;case 2:i[n++]=(15&r)<<4|(60&f)>>2,r=f,s=3;break;case 3:i[n++]=(3&r)<<6|f,s=0}}if(1===s)throw Error(u);return n-e}},{}],3:[function(t,i,n){"use strict";function r(t,i,n){var r=n||8192,e=r>>>1,o=null,s=r;return function(n){if(n>e)return t(n);s+n>r&&(o=t(r),s=0);var u=i.call(o,s,s+=n);return 7&s&&(s=(7|s)+1),u}}i.exports=r},{}],4:[function(t,i,n){"use strict";var r=n;r.length=function(t){for(var i=0,n=0,r=0;r191&&e<224?o[s++]=(31&e)<<6|63&t[i++]:e>239&&e<365?(e=((7&e)<<18|(63&t[i++])<<12|(63&t[i++])<<6|63&t[i++])-65536,o[s++]=55296+(e>>10),o[s++]=56320+(1023&e)):o[s++]=(15&e)<<12|(63&t[i++])<<6|63&t[i++];return String.fromCharCode.apply(String,o.slice(0,s))},r.write=function(t,i,n){for(var r,e,o=n,s=0;s>6|192,i[n++]=63&r|128):55296===(64512&r)&&56320===(64512&(e=t.charCodeAt(s+1)))?(r=65536+((1023&r)<<10)+(1023&e),++s,i[n++]=r>>18|240,i[n++]=r>>12&63|128,i[n++]=r>>6&63|128,i[n++]=63&r|128):(i[n++]=r>>12|224,i[n++]=r>>6&63|128,i[n++]=63&r|128);return n-o}},{}],5:[function(t,i,n){function r(){s.a()}var e=n,o=e.Writer=t(9);e.BufferWriter=o.BufferWriter;var s=e.Reader=t(6);e.BufferReader=s.BufferReader,e.util=t(8),e.configure=r,"function"==typeof define&&define.amd&&define(["long"],function(t){return t&&(e.util.Long=t,r()),e})},{6:6,8:8,9:9}],6:[function(t,i,n){"use strict";function r(t,i){return RangeError("index out of range: "+t.pos+" + "+(i||1)+" > "+t.len)}function e(t){this.buf=t,this.pos=0,this.len=t.length}function o(t,i){this.id=t,this.wireType=i}function s(){var t=0,i=0,n=0,e=0;if(this.len-this.pos>9){for(n=0;n<4;++n)if(e=this.buf[this.pos++],t|=(127&e)<<7*n,e<128)return new N(t>>>0,i>>>0);if(e=this.buf[this.pos++],t|=(127&e)<<28,i|=(127&e)>>4,e<128)return new N(t>>>0,i>>>0);for(n=0;n<5;++n)if(e=this.buf[this.pos++],i|=(127&e)<<7*n+3,e<128)return new N(t>>>0,i>>>0)}else{for(n=0;n<4;++n){if(this.pos>=this.len)throw r(this);if(e=this.buf[this.pos++],t|=(127&e)<<7*n,e<128)return new N(t>>>0,i>>>0)}if(this.pos>=this.len)throw r(this);if(e=this.buf[this.pos++],t|=(127&e)<<28,i|=(127&e)>>4,e<128)return new N(t>>>0,i>>>0);for(n=0;n<5;++n){if(this.pos>=this.len)throw r(this);if(e=this.buf[this.pos++],i|=(127&e)<<7*n+3,e<128)return new N(t>>>0,i>>>0)}}throw Error("invalid varint encoding")}function u(){return s.call(this).toLong()}function h(){return s.call(this).toNumber()}function f(){return s.call(this).toLong(!0)}function a(){return s.call(this).toNumber(!0)}function c(){return s.call(this).zzDecode().toLong()}function l(){return s.call(this).zzDecode().toNumber()}function p(t,i){return t[i-4]|t[i-3]<<8|t[i-2]<<16|t[i-1]<<24}function d(){if(this.pos+8>this.len)throw r(this,8);return new N(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}function b(){return d.call(this).toLong(!0)}function g(){return d.call(this).toNumber(!0)}function v(){return d.call(this).zzDecode().toLong()}function w(){return d.call(this).zzDecode().toNumber()}function y(t){C&&C(),e.call(this,t)}function m(t,i,n){return t.utf8Slice(i,n)}function B(t,i,n){return t.toString("utf8",i,n)}function A(){x.Long?(E.int64=u,E.uint64=f,E.sint64=c,E.fixed64=b,E.sfixed64=v):(E.int64=h,E.uint64=a,E.sint64=l,E.fixed64=g,E.sfixed64=w)}i.exports=e,e.BufferReader=y;var x=t(8),L=t(1),N=x.LongBits,z=x.utf8,k="undefined"!=typeof Uint8Array?Uint8Array:Array;e.create=function(t){return new(x.Buffer&&x.Buffer.isBuffer(t)&&y||e)(t)};var E=e.prototype;E.b=k.prototype.subarray||k.prototype.slice,E.tag=function(){if(this.pos>=this.len)throw r(this);return new o(this.buf[this.pos]>>>3,7&this.buf[this.pos++])},E.int32=function(){var t=this.buf[this.pos++],i=127&t;if(t>127&&(t=this.buf[this.pos++],i|=(127&t)<<7,t>127&&(t=this.buf[this.pos++],i|=(127&t)<<14,t>127&&(t=this.buf[this.pos++],i|=(127&t)<<21,t>127&&(t=this.buf[this.pos++],i|=t<<28,t>127&&(this.pos+=5))))),this.pos>this.len)throw this.pos=this.len,r(this);return i},E.uint32=function(){return this.int32()>>>0},E.sint32=function(){var t=this.int32();return t>>>1^-(1&t)},E.bool=function(){return 0!==this.int32()},E.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return p(this.buf,this.pos+=4)},E.sfixed32=function(){var t=this.fixed32();return t>>>1^-(1&t)};var F="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],t[0]}:function(n,r){return i[3]=n[r],i[2]=n[r+1],i[1]=n[r+2],i[0]=n[r+3],t[0]}}():function(t,i){return L.read(t,i,!1,23,4)};E.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=F(this.buf,this.pos);return this.pos+=4,t};var M="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r){return i[0]=n[r],i[1]=n[r+1],i[2]=n[r+2],i[3]=n[r+3],i[4]=n[r+4],i[5]=n[r+5],i[6]=n[r+6],i[7]=n[r+7],t[0]}:function(n,r){return i[7]=n[r],i[6]=n[r+1],i[5]=n[r+2],i[4]=n[r+3],i[3]=n[r+4],i[2]=n[r+5],i[1]=n[r+6],i[0]=n[r+7],t[0]}}():function(t,i){return L.read(t,i,!1,52,8)};E.double=function(){if(this.pos+8>this.len)throw r(this,4);var t=M(this.buf,this.pos);return this.pos+=8,t},E.bytes=function(){var t=this.int32()>>>0,i=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,i===n?new this.buf.constructor(0):this.b.call(this.buf,i,n)},E.string=function(){var t=this.bytes();return z.read(t,0,t.length)},E.skip=function(t){if(void 0===t){do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++])}else{if(this.pos+t>this.len)throw r(this,t);this.pos+=t}return this},E.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(;;){var i=this.tag();if(4===i.wireType)break;this.skipType(i.wireType)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type: "+t)}return this},E.reset=function(t){return t?(this.buf=t,this.len=t.length):(this.buf=null,this.len=0),this.pos=0,this},E.finish=function(t){var i=this.pos?this.b.call(this.buf,this.pos):this.buf;return this.reset(t),i};var C=function(){if(!x.Buffer)throw Error("Buffer is not supported");O.b=x.Buffer.prototype.slice,S=x.Buffer.prototype.utf8Slice?m:B,C=!1},O=y.prototype=Object.create(e.prototype);O.constructor=y,"undefined"==typeof Float32Array&&(O.float=function(){if(this.pos+4>this.len)throw r(this,4);var t=this.buf.readFloatLE(this.pos,!0);return this.pos+=4,t}),"undefined"==typeof Float64Array&&(O.double=function(){if(this.pos+8>this.len)throw r(this,8);var t=this.buf.readDoubleLE(this.pos,!0);return this.pos+=8,t});var S;O.string=function(){var t=this.int32()>>>0,i=this.pos,n=this.pos+t;if(n>this.len)throw r(this,t);return this.pos+=t,S(this.buf,i,n)},O.finish=function(t){var i=this.pos?this.buf.slice(this.pos):this.buf;return this.reset(t),i},e.a=A,A()},{1:1,8:8}],7:[function(t,i,n){"use strict";function r(t,i){this.lo=t,this.hi=i}i.exports=r;var e=t(8),o=r.prototype,s=r.zero=new r(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1},r.fromNumber=function(t){if(0===t)return s;var i=t<0;t=Math.abs(t);var n=t>>>0,e=(t-n)/4294967296>>>0;return i&&(e=~e>>>0,n=~n>>>0,++n>4294967295&&(n=0,++e>4294967295&&(e=0))),new r(n,e)},r.from=function(t){switch(typeof t){case"number":return r.fromNumber(t);case"string":if(!e.Long)return r.fromNumber(parseInt(t,10));t=e.Long.fromString(t)}return(t.low||t.high)&&new r(t.low>>>0,t.high>>>0)||s},o.toNumber=function(t){return!t&&this.hi>>>31?(this.lo=~this.lo+1>>>0,this.hi=~this.hi>>>0,this.lo||(this.hi=this.hi+1>>>0),-(this.lo+4294967296*this.hi)):this.lo+4294967296*this.hi},o.toLong=function(t){return e.Long?new e.Long(this.lo,this.hi,t):{low:this.lo,high:this.hi,unsigned:Boolean(t)}};var u=String.prototype.charCodeAt;r.fromHash=function(t){return new r((u.call(t,0)|u.call(t,1)<<8|u.call(t,2)<<16|u.call(t,3)<<24)>>>0,(u.call(t,4)|u.call(t,5)<<8|u.call(t,6)<<16|u.call(t,7)<<24)>>>0)},o.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24&255,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24&255)},o.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},o.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},o.length=function(){var t=this.lo,i=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===i?t<16384?t<128?1:2:t<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:n<128?9:10}},{8:8}],8:[function(t,i,n){(function(i){"use strict";var r=n,e=r.LongBits=t(7);r.base64=t(2),r.utf8=t(4),r.pool=t(3);var o=r.isNode=Boolean(i.process&&i.process.versions&&i.process.versions.node);if(r.Buffer=null,o)try{r.Buffer=t("buffer").Buffer}catch(t){}if(r.Long=i.dcodeIO&&i.dcodeIO.Long||null,!r.Long&&o)try{r.Long=t("long")}catch(t){}r.isInteger=Number.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t},r.isString=function(t){return"string"==typeof t||t instanceof String},r.isObject=function(t){return Boolean(t&&"object"==typeof t)},r.longToHash=function(t){return t?e.from(t).toHash():"\0\0\0\0\0\0\0\0"},r.longFromHash=function(t,i){var n=e.fromHash(t);return r.Long?r.Long.fromBits(n.lo,n.hi,i):n.toNumber(Boolean(i))},r.longNeq=function(t,i){return"number"==typeof t?"number"==typeof i?t!==i:(t=e.fromNumber(t)).lo!==i.low||t.hi!==i.high:"number"==typeof i?(i=e.fromNumber(i)).lo!==t.low||i.hi!==t.high:t.low!==i.low||t.high!==i.high},r.props=function(t,i){Object.keys(i).forEach(function(n){r.prop(t,n,i[n])})},r.prop=function(t,i,n){var r=!-[1],e=i.substring(0,1).toUpperCase()+i.substring(1);n.get&&(t["get"+e]=n.get),n.set&&(t["set"+e]=r?function(t){n.set.call(this,t),this[i]=t}:n.set),r?void 0!==n.value&&(t[i]=n.value):Object.defineProperty(t,i,n)},r.emptyArray=Object.freeze([]),r.emptyObject=Object.freeze({})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2,3:3,4:4,7:7,buffer:"buffer",long:"long"}],9:[function(t,i,n){"use strict";function r(t,i,n){this.fn=t,this.val=i,this.len=n,this.next=null}function e(){}function o(t,i){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=i}function s(){this.len=0,this.head=new r(e,0,0),this.tail=this.head,this.states=null}function u(t,i,n){i[n]=255&t}function h(t,i,n){for(;t>127;)i[n++]=127&t|128,t>>>=7;i[n]=t}function f(t,i,n){for(;t.hi;)i[n++]=127&t.lo|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)i[n++]=127&t.lo|128,t.lo=t.lo>>>7;i[n++]=t.lo}function a(t,i,n){i[n++]=255&t,i[n++]=t>>>8&255,i[n++]=t>>>16&255,i[n]=t>>>24}function c(){s.call(this)}function l(t,i,n){i.writeFloatLE(t,n,!0)}function p(t,i,n){i.writeDoubleLE(t,n,!0)}function d(t,i,n){t.length&&t.copy(i,n,0,t.length)}i.exports=s,s.BufferWriter=c;var b=t(8),g=t(1),v=b.LongBits,w=b.base64,y=b.utf8,m="undefined"!=typeof Uint8Array?Uint8Array:Array;s.Op=r,s.State=o,s.create=function(){return new(b.Buffer&&c||s)},s.alloc=function(t){return new m(t)},m!==Array&&(s.alloc=b.pool(s.alloc,m.prototype.subarray||m.prototype.slice));var B=s.prototype;B.push=function(t,i,n){var e=new r(t,n,i);return this.tail.next=e,this.tail=e,this.len+=i,this},B.tag=function(t,i){return this.push(u,1,t<<3|7&i)},B.uint32=function(t){return t>>>=0,t<128?this.push(u,1,t):this.push(h,t<16384?2:t<2097152?3:t<268435456?4:5,t)},B.int32=function(t){return t<0?this.push(f,10,v.fromNumber(t)):this.uint32(t)},B.sint32=function(t){return this.uint32(t<<1^t>>31)},B.uint64=function(t){var i=v.from(t);return this.push(f,i.length(),i)},B.int64=B.uint64,B.sint64=function(t){var i=v.from(t).zzEncode();return this.push(f,i.length(),i)},B.bool=function(t){return this.push(u,1,t?1:0)},B.fixed32=function(t){return this.push(a,4,t>>>0)},B.sfixed32=function(t){return this.push(a,4,t<<1^t>>31)},B.fixed64=function(t){var i=v.from(t);return this.push(a,4,i.lo).push(a,4,i.hi)},B.sfixed64=function(t){var i=v.from(t).zzEncode();return this.push(a,4,i.lo).push(a,4,i.hi)};var A="undefined"!=typeof Float32Array?function(){var t=new Float32Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[3]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e]=i[3]}:function(n,r,e){t[0]=n,r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){g.write(i,t,n,!1,23,4)};B.float=function(t){return this.push(A,4,t)};var x="undefined"!=typeof Float64Array?function(){var t=new Float64Array(1),i=new Uint8Array(t.buffer);return t[0]=-0,i[7]?function(n,r,e){t[0]=n,r[e++]=i[0],r[e++]=i[1],r[e++]=i[2],r[e++]=i[3],r[e++]=i[4],r[e++]=i[5],r[e++]=i[6],r[e]=i[7]}:function(n,r,e){t[0]=n,r[e++]=i[7],r[e++]=i[6],r[e++]=i[5],r[e++]=i[4],r[e++]=i[3],r[e++]=i[2],r[e++]=i[1],r[e]=i[0]}}():function(t,i,n){g.write(i,t,n,!1,52,8)};B.double=function(t){return this.push(x,8,t)};var L=m.prototype.set?function(t,i,n){i.set(t,n)}:function(t,i,n){for(var r=0;r>>0;if("string"==typeof t&&i){var n=s.alloc(i=w.length(t));w.decode(t,n,0),t=n}return i?this.uint32(i).push(L,i,t):this.push(u,1,0)},B.string=function(t){var i=y.length(t);return i?this.uint32(i).push(y.write,i,t):this.push(u,1,0)},B.fork=function(){return this.states=new o(this,this.states),this.head=this.tail=new r(e,0,0),this.len=0,this},B.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 r(e,0,0),this.len=0),this},B.ldelim=function(t){var i=this.head,n=this.tail,r=this.len;return this.reset(),void 0!==t&&this.tag(t,2),this.uint32(r),this.tail.next=i.next,this.tail=n,this.len+=r,this},B.finish=function(){var t=this.head.next,i=this.constructor.alloc(this.len);this.reset();for(var n=0;t;)t.fn(t.val,i,n),n+=t.len,t=t.next;return i},c.alloc=function(t){return c.alloc=b.Buffer.allocUnsafe?b.Buffer.allocUnsafe:function(t){return new b.Buffer(t)},c.alloc(t)};var N=c.prototype=Object.create(s.prototype);N.constructor=c,"undefined"==typeof Float32Array&&(N.float=function(t){return this.push(l,4,t)}),"undefined"==typeof Float64Array&&(N.double=function(t){return this.push(p,8,t)}),N.bytes=function(t){"string"==typeof t&&(t=b.Buffer.from&&b.Buffer.from(t,"base64")||new b.Buffer(t,"base64"));var i=t.length>>>0;return i?this.uint32(i).push(d,i,t):this.push(u,1,0)};var z=function(){return b.Buffer&&b.Buffer.prototype.utf8Write?function(t,i,n){t.length<40?y.write(t,i,n):i.utf8Write(t,n)}:function(t,i,n){t.length<40?y.write(t,i,n):i.write(t,n)}}();N.string=function(t){var i=t.length<40?y.length(t):b.Buffer.byteLength(t);return i?this.uint32(i).push(z,i,t):this.push(u,1,0)}},{1:1,8:8}]},{},[5]); +//# sourceMappingURL=protobuf.min.js.map diff --git a/dist/runtime/protobuf.min.js.gz b/dist/runtime/protobuf.min.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a6c14189b06489f4e9b2ad3808642064380a51b GIT binary patch literal 5530 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 literal 0 HcmV?d00001 diff --git a/dist/runtime/protobuf.min.js.map b/dist/runtime/protobuf.min.js.map new file mode 100644 index 000000000..6877b9ae1 --- /dev/null +++ b/dist/runtime/protobuf.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/ieee754.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","runtime","src/reader.js","src/util/longbits.js","src/util/runtime.js","src/writer.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","read","buffer","offset","isBE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","base64","string","p","charAt","ceil","b64","s64","encode","start","end","j","b","String","fromCharCode","apply","invalidEncoding","decode","charCodeAt","undefined","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","c1","c2","configure","Reader","_configure","protobuf","Writer","BufferWriter","BufferReader","util","define","amd","Long","indexOutOfRange","reader","writeLength","RangeError","pos","this","Tag","id","wireType","readLongVarint","lo","hi","LongBits","read_int64_long","toLong","read_int64_number","toNumber","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","initBufferReader","readStringBuffer_utf8Slice","utf8Slice","readStringBuffer_toString","toString","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","ieee754","ArrayImpl","Uint8Array","Array","create","Buffer","isBuffer","prototype","_slice","subarray","tag","int32","octet","uint32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","float","readDouble","Float64Array","f64","double","bytes","constructor","skip","skipType","reset","finish","remain","BufferReaderPrototype","readStringBuffer","Object","readFloatLE","readDoubleLE","LongBitsPrototype","zero","zzEncode","fromNumber","sign","from","parseInt","fromString","low","high","unsigned","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","isNode","global","process","versions","node","dcodeIO","isInteger","Number","isFinite","isString","isObject","longToHash","longFromHash","bits","fromBits","longNeq","props","target","descriptors","keys","forEach","key","prop","descriptor","ie8","ucKey","substring","toUpperCase","get","set","defineProperty","emptyArray","freeze","emptyObject","Op","fn","val","next","noop","State","writer","head","tail","states","writeByte","writeVarint32","writeVarint64","writeFixed32","writeFloatBuffer","writeFloatLE","writeDoubleBuffer","writeDoubleLE","writeBytesBuffer","copy","WriterPrototype","push","op","writeFloat","writeDouble","writeBytes","fork","ldelim","allocUnsafe","BufferWriterPrototype","writeStringBuffer","utf8Write","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> 1,\r\n nBits = -7,\r\n i = isBE ? 0 : (nBytes - 1),\r\n d = isBE ? 1 : -1,\r\n s = buffer[offset + i];\r\n\r\n i += d;\r\n\r\n e = s & ((1 << (-nBits)) - 1);\r\n s >>= (-nBits);\r\n nBits += eLen;\r\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n m = e & ((1 << (-nBits)) - 1);\r\n e >>= (-nBits);\r\n nBits += mLen;\r\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);\r\n\r\n if (e === 0) {\r\n e = 1 - eBias;\r\n } else if (e === eMax) {\r\n return m ? NaN : ((s ? -1 : 1) * Infinity);\r\n } else {\r\n m = m + Math.pow(2, mLen);\r\n e = e - eBias;\r\n }\r\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\r\n};\r\n\r\nexports.write = function writeIEEE754(buffer, value, offset, isBE, mLen, nBytes) {\r\n var e, m, c,\r\n eLen = nBytes * 8 - mLen - 1,\r\n eMax = (1 << eLen) - 1,\r\n eBias = eMax >> 1,\r\n rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),\r\n i = isBE ? (nBytes - 1) : 0,\r\n d = isBE ? -1 : 1,\r\n s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\r\n\r\n value = Math.abs(value);\r\n\r\n if (isNaN(value) || value === Infinity) {\r\n m = isNaN(value) ? 1 : 0;\r\n e = eMax;\r\n } else {\r\n e = Math.floor(Math.log(value) / Math.LN2);\r\n if (value * (c = Math.pow(2, -e)) < 1) {\r\n e--;\r\n c *= 2;\r\n }\r\n if (e + eBias >= 1) {\r\n value += rt / c;\r\n } else {\r\n value += rt * Math.pow(2, 1 - eBias);\r\n }\r\n if (value * c >= 2) {\r\n e++;\r\n c /= 2;\r\n }\r\n\r\n if (e + eBias >= eMax) {\r\n m = 0;\r\n e = eMax;\r\n } else if (e + eBias >= 1) {\r\n m = (value * c - 1) * Math.pow(2, mLen);\r\n e = e + eBias;\r\n } else {\r\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\r\n e = 0;\r\n }\r\n }\r\n\r\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);\r\n\r\n e = (e << mLen) | m;\r\n eLen += mLen;\r\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);\r\n\r\n buffer[offset + i - d] |= s * 128;\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 = [];\r\n\r\n// Base64 decoding table\r\nvar s64 = [];\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","\"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 > 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 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(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var string = [],\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 string[i++] = t;\r\n else if (t > 191 && t < 224)\r\n string[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 string[i++] = 0xD800 + (t >> 10);\r\n string[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n string[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n }\r\n return String.fromCharCode.apply(String, string.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(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","// This file exports just the bare minimum required to work with statically generated code.\r\n// Can be used as a drop-in replacement for the full library as it has the same general structure.\r\nvar protobuf = exports;\r\n\r\n var Writer =\r\nprotobuf.Writer = require(9);\r\nprotobuf.BufferWriter = Writer.BufferWriter;\r\n var Reader =\r\nprotobuf.Reader = require(6);\r\nprotobuf.BufferReader = Reader.BufferReader;\r\nprotobuf.util = require(8);\r\n\r\nfunction configure() {\r\n Reader._configure();\r\n}\r\n\r\nprotobuf.configure = configure;\r\n\r\n// Be nice to AMD\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\nmodule.exports = Reader;\r\n\r\nReader.BufferReader = BufferReader;\r\n\r\nvar util = require(8),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\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 * @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 = function create(buffer) {\r\n return new (util.Buffer && util.Buffer.isBuffer(buffer) && BufferReader || Reader)(buffer);\r\n};\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice;\r\n\r\n/**\r\n * Tag read.\r\n * @constructor\r\n * @param {number} id Field id\r\n * @param {number} wireType Wire type\r\n * @ignore\r\n */\r\nfunction Tag(id, wireType) {\r\n this.id = id;\r\n this.wireType = wireType;\r\n}\r\n\r\n/**\r\n * Reads a tag.\r\n * @returns {{id: number, wireType: number}} Field id and wire type\r\n */\r\nReaderPrototype.tag = function read_tag() {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n return new Tag(this.buf[this.pos] >>> 3, this.buf[this.pos++] & 7);\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\nReaderPrototype.int32 = function read_int32() {\r\n // 1 byte\r\n var octet = this.buf[this.pos++],\r\n value = octet & 127;\r\n if (octet > 127) { // false if octet is undefined (pos >= len)\r\n // 2 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 7;\r\n if (octet > 127) {\r\n // 3 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 14;\r\n if (octet > 127) {\r\n // 4 bytes\r\n octet = this.buf[this.pos++];\r\n value |= (octet & 127) << 21;\r\n if (octet > 127) {\r\n // 5 bytes\r\n octet = this.buf[this.pos++];\r\n value |= octet << 28;\r\n if (octet > 127) {\r\n // 6..10 bytes (sign extended)\r\n this.pos += 5;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (this.pos > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this);\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = function read_uint32() {\r\n return this.int32() >>> 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\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.int32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n var lo = 0, hi = 0,\r\n i = 0, b = 0;\r\n if (this.len - this.pos > 9) { // fast route\r\n for (i = 0; i < 4; ++i) {\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << i * 7;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << 28;\r\n hi |= (b & 127) >> 4;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n for (i = 0; i < 5; ++i) {\r\n b = this.buf[this.pos++];\r\n hi |= (b & 127) << i * 7 + 3;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n } else {\r\n for (i = 0; i < 4; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << i * 7;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n lo |= (b & 127) << 28;\r\n hi |= (b & 127) >> 4;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n for (i = 0; i < 5; ++i) {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n b = this.buf[this.pos++];\r\n hi |= (b & 127) << i * 7 + 3;\r\n if (b < 128)\r\n return new LongBits(lo >>> 0, hi >>> 0);\r\n }\r\n }\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\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\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\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\nReaderPrototype.bool = function read_bool() {\r\n return this.int32() !== 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;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\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\nReaderPrototype.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 if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\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\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\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() { // eslint-disable-line wrap-iife\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 : 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 : function readFloat_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 23, 4);\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\nReaderPrototype.float = function read_float() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\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() { // eslint-disable-line wrap-iife\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 : 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 : function readDouble_ieee754(buf, pos) {\r\n return ieee754.read(buf, pos, false, 52, 8);\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\nReaderPrototype.double = function read_double() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\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\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.int32() >>> 0,\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\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\nReaderPrototype.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\nReaderPrototype.skip = function skip(length) {\r\n if (length === undefined) {\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 } else {\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\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\nReaderPrototype.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 var tag = this.tag();\r\n if (tag.wireType === 4)\r\n break;\r\n this.skipType(tag.wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n default:\r\n throw Error(\"invalid wire type: \" + wireType);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance and frees all resources.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.reset = function reset(buffer) {\r\n if (buffer) {\r\n this.buf = buffer;\r\n this.len = buffer.length;\r\n } else {\r\n this.buf = null; // makes it throw\r\n this.len = 0;\r\n }\r\n this.pos = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of read operations, frees all resources and returns the remaining buffer.\r\n * @param {Uint8Array} [buffer] New buffer for a new sequence of read operations\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nReaderPrototype.finish = function finish(buffer) {\r\n var remain = this.pos\r\n ? this._slice.call(this.buf, this.pos)\r\n : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\n// One time function to initialize BufferReader with the now-known buffer implementation's slice method\r\nvar initBufferReader = function() {\r\n if (!util.Buffer)\r\n throw Error(\"Buffer is not supported\");\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n readStringBuffer = util.Buffer.prototype.utf8Slice // around forever, but not present in browser buffer\r\n ? readStringBuffer_utf8Slice\r\n : readStringBuffer_toString;\r\n initBufferReader = false;\r\n};\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 if (initBufferReader)\r\n initBufferReader();\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\n\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.float = function read_float_buffer() {\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n var value = this.buf.readFloatLE(this.pos, true);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.double = function read_double_buffer() {\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n var value = this.buf.readDoubleLE(this.pos, true);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\nvar readStringBuffer;\r\n\r\nfunction readStringBuffer_utf8Slice(buf, start, end) {\r\n return buf.utf8Slice(start, end); // fastest\r\n}\r\n\r\nfunction readStringBuffer_toString(buf, start, end) {\r\n return buf.toString(\"utf8\", start, end); // 2nd, again assertions\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var length = this.int32() >>> 0,\r\n start = this.pos,\r\n end = this.pos + length;\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n return readStringBuffer(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.finish = function finish_buffer(buffer) {\r\n var remain = this.pos ? this.buf.slice(this.pos) : this.buf;\r\n this.reset(buffer);\r\n return remain;\r\n};\r\n\r\nfunction configure() {\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\n\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(8);\r\n\r\n/**\r\n * Any compatible Long instance.\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/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\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 * 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 value = Math.abs(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 switch (typeof value) {\r\n case \"number\":\r\n return LongBits.fromNumber(value);\r\n case \"string\":\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n // fallthrough\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\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n this.lo = ~this.lo + 1 >>> 0;\r\n this.hi = ~this.hi >>> 0;\r\n if (!this.lo)\r\n this.hi = this.hi + 1 >>> 0;\r\n return -(this.lo + this.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\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo, this.hi, unsigned)\r\n : { low: this.lo, high: this.hi, 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 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\nLongBitsPrototype.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 & 255,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24 & 255\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\nLongBitsPrototype.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\nLongBitsPrototype.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\nLongBitsPrototype.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 if (part2 === 0) {\r\n if (part1 === 0)\r\n return part0 < 1 << 14\r\n ? part0 < 1 << 7 ? 1 : 2\r\n : part0 < 1 << 21 ? 3 : 4;\r\n return part1 < 1 << 14\r\n ? part1 < 1 << 7 ? 5 : 6\r\n : part1 < 1 << 21 ? 7 : 8;\r\n }\r\n return part2 < 1 << 7 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\n\r\nvar util = exports;\r\n\r\nvar LongBits = util.LongBits = require(\"./longbits\");\r\n\r\nutil.base64 = require(\"@protobufjs/base64\");\r\nutil.utf8 = require(\"@protobufjs/utf8\");\r\nutil.pool = require(\"@protobufjs/pool\");\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nvar isNode = util.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Optional buffer class to use.\r\n * If you assign any compatible buffer implementation to this property, the library will use it.\r\n * @type {*}\r\n */\r\nutil.Buffer = null;\r\n\r\nif (isNode)\r\n try { util.Buffer = require(\"buffer\").Buffer; } catch (e) {} // eslint-disable-line no-empty\r\n\r\n/**\r\n * Optional Long class to use.\r\n * If you assign any compatible long implementation to this property, the library will use it.\r\n * @type {*}\r\n */\r\nutil.Long = global.dcodeIO && global.dcodeIO.Long || null;\r\n\r\nif (!util.Long && isNode)\r\n try { util.Long = require(\"long\"); } catch (e) {} // eslint-disable-line no-empty\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 || 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 Boolean(value && typeof value === \"object\");\r\n};\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 ? LongBits.from(value).toHash()\r\n : \"\\0\\0\\0\\0\\0\\0\\0\\0\";\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 = 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 * Tests if two possibly long values are not equal.\r\n * @param {number|Long} a First value\r\n * @param {number|Long} b Second value\r\n * @returns {boolean} `true` if not equal\r\n */\r\nutil.longNeq = function longNeq(a, b) {\r\n return typeof a === \"number\"\r\n ? typeof b === \"number\"\r\n ? a !== b\r\n : (a = LongBits.fromNumber(a)).lo !== b.low || a.hi !== b.high\r\n : typeof b === \"number\"\r\n ? (b = LongBits.fromNumber(b)).lo !== a.low || b.hi !== a.high\r\n : a.low !== b.low || a.high !== b.high;\r\n};\r\n\r\n/**\r\n * Defines the specified properties on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {Object} descriptors Property descriptors\r\n * @returns {undefined}\r\n */\r\nutil.props = function props(target, descriptors) {\r\n Object.keys(descriptors).forEach(function(key) {\r\n util.prop(target, key, descriptors[key]);\r\n });\r\n};\r\n\r\n/**\r\n * Defines the specified property on the specified target. Also adds getters and setters for non-ES5 environments.\r\n * @param {Object} target Target object\r\n * @param {string} key Property name\r\n * @param {Object} descriptor Property descriptor\r\n * @returns {undefined}\r\n */\r\nutil.prop = function prop(target, key, descriptor) {\r\n var ie8 = !-[1,];\r\n var ucKey = key.substring(0, 1).toUpperCase() + key.substring(1);\r\n if (descriptor.get)\r\n target[\"get\" + ucKey] = descriptor.get;\r\n if (descriptor.set)\r\n target[\"set\" + ucKey] = ie8\r\n ? function(value) {\r\n descriptor.set.call(this, value);\r\n this[key] = value;\r\n }\r\n : descriptor.set;\r\n if (ie8) {\r\n if (descriptor.value !== undefined)\r\n target[key] = descriptor.value;\r\n } else\r\n Object.defineProperty(target, key, descriptor);\r\n};\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([]);\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze({});\r\n","\"use strict\";\r\nmodule.exports = Writer;\r\n\r\nWriter.BufferWriter = BufferWriter;\r\n\r\nvar util = require(8),\r\n ieee754 = require(1);\r\nvar LongBits = util.LongBits,\r\n base64 = util.base64,\r\n utf8 = util.utf8;\r\nvar ArrayImpl = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n/**\r\n * Constructs a new writer operation instance.\r\n * @classdesc Scheduled writer operation.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {function(*, Uint8Array, number)} fn Function to call\r\n * @param {*} val Value to write\r\n * @param {number} len Value byte length\r\n * @private\r\n * @ignore\r\n */\r\nfunction Op(fn, val, len) {\r\n\r\n /**\r\n * Function to call.\r\n * @type {function(Uint8Array, number, *)}\r\n */\r\n this.fn = fn;\r\n\r\n /**\r\n * Value to write.\r\n * @type {*}\r\n */\r\n this.val = val;\r\n\r\n /**\r\n * Value byte length.\r\n * @type {number}\r\n */\r\n this.len = len;\r\n\r\n /**\r\n * Next operation.\r\n * @type {?Writer.Op}\r\n */\r\n this.next = null;\r\n}\r\n\r\nWriter.Op = Op;\r\n\r\nfunction noop() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Constructs a new writer state instance.\r\n * @classdesc Copied writer state.\r\n * @memberof Writer\r\n * @constructor\r\n * @param {Writer} writer Writer to copy state from\r\n * @param {State} next Next state entry\r\n * @private\r\n * @ignore\r\n */\r\nfunction State(writer, next) {\r\n\r\n /**\r\n * Current head.\r\n * @type {Writer.Op}\r\n */\r\n this.head = writer.head;\r\n\r\n /**\r\n * Current tail.\r\n * @type {Writer.Op}\r\n */\r\n this.tail = writer.tail;\r\n\r\n /**\r\n * Current buffer length.\r\n * @type {number}\r\n */\r\n this.len = writer.len;\r\n\r\n /**\r\n * Next state.\r\n * @type {?State}\r\n */\r\n this.next = next;\r\n}\r\n\r\nWriter.State = State;\r\n\r\n/**\r\n * Constructs a new writer instance.\r\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n */\r\nfunction Writer() {\r\n\r\n /**\r\n * Current length.\r\n * @type {number}\r\n */\r\n this.len = 0;\r\n\r\n /**\r\n * Operations head.\r\n * @type {Object}\r\n */\r\n this.head = new Op(noop, 0, 0);\r\n\r\n /**\r\n * Operations tail\r\n * @type {Object}\r\n */\r\n this.tail = this.head;\r\n\r\n /**\r\n * Linked forked states.\r\n * @type {?Object}\r\n */\r\n this.states = null;\r\n\r\n // When a value is written, the writer calculates its byte length and puts it into a linked\r\n // list of operations to perform when finish() is called. This both allows us to allocate\r\n // buffers of the exact required size and reduces the amount of work we have to do compared\r\n // to first calculating over objects and then encoding over objects. In our case, the encoding\r\n // part is just a linked list walk calling linked operations with already prepared values.\r\n}\r\n\r\n/**\r\n * Creates a new writer.\r\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\r\n */\r\nWriter.create = function create() {\r\n return new (util.Buffer && BufferWriter || Writer);\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\nWriter.alloc = function alloc(size) {\r\n return new ArrayImpl(size);\r\n};\r\n\r\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\r\nif (ArrayImpl !== Array)\r\n Writer.alloc = util.pool(Writer.alloc, ArrayImpl.prototype.subarray || ArrayImpl.prototype.slice);\r\n\r\n/** @alias Writer.prototype */\r\nvar WriterPrototype = Writer.prototype;\r\n\r\n/**\r\n * Pushes a new operation to the queue.\r\n * @param {function(Uint8Array, number, *)} fn Function to call\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.push = function push(fn, len, val) {\r\n var op = new Op(fn, val, len);\r\n this.tail.next = op;\r\n this.tail = op;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\nfunction writeByte(val, buf, pos) {\r\n buf[pos] = val & 255;\r\n}\r\n\r\n/**\r\n * Writes a tag.\r\n * @param {number} id Field id\r\n * @param {number} wireType Wire type\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.tag = function write_tag(id, wireType) {\r\n return this.push(writeByte, 1, id << 3 | wireType & 7);\r\n};\r\n\r\nfunction writeVarint32(val, buf, pos) {\r\n while (val > 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 * 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\nWriterPrototype.uint32 = function write_uint32(value) {\r\n value >>>= 0;\r\n return value < 128\r\n ? this.push(writeByte, 1, value)\r\n : this.push(writeVarint32,\r\n value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5\r\n , value);\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\nWriterPrototype.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\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32(value << 1 ^ value >> 31);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n // tends to deoptimize. stays optimized when using bits directly.\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\nWriterPrototype.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\nWriterPrototype.int64 = WriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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\nWriterPrototype.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() { // eslint-disable-line wrap-iife\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 : 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 : function writeFloat_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 23, 4);\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\nWriterPrototype.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() { // eslint-disable-line wrap-iife\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 : 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 : function writeDouble_ieee754(val, buf, pos) {\r\n ieee754.write(buf, val, pos, false, 52, 8);\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\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = ArrayImpl.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos);\r\n }\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\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (typeof value === \"string\" && len) {\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 len\r\n ? this.uint32(len).push(writeBytes, len, value)\r\n : this.push(writeByte, 1, 0);\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\nWriterPrototype.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#}, {@link Writer#reset} or {@link Writer#finish} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this, this.states);\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\nWriterPrototype.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 * @param {number} [id] Id with wire type 2 to prepend as a tag where applicable\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim(id) {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset();\r\n if (id !== undefined)\r\n this.tag(id, 2);\r\n this.uint32(len);\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the current sequence of write operations and frees all resources.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len);\r\n this.reset();\r\n var 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 return buf;\r\n};\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @exports BufferWriter\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 BufferWriter.alloc = util.Buffer.allocUnsafe\r\n ? util.Buffer.allocUnsafe\r\n : function allocUnsafeNew(size) { return new util.Buffer(size); };\r\n return BufferWriter.alloc(size);\r\n};\r\n\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nfunction writeFloatBuffer(val, buf, pos) {\r\n buf.writeFloatLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float32Array === \"undefined\") // f32 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.float = function write_float_buffer(value) {\r\n return this.push(writeFloatBuffer, 4, value);\r\n};\r\n\r\nfunction writeDoubleBuffer(val, buf, pos) {\r\n buf.writeDoubleLE(val, pos, true);\r\n}\r\n\r\nif (typeof Float64Array === \"undefined\") // f64 is faster (node 6.9.1)\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.double = function write_double_buffer(value) {\r\n return this.push(writeDoubleBuffer, 8, value);\r\n};\r\n\r\nfunction writeBytesBuffer(val, buf, pos) {\r\n if (val.length)\r\n val.copy(buf, pos, 0, val.length);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = util.Buffer.from && util.Buffer.from(value, \"base64\") || new util.Buffer(value, \"base64\");\r\n var len = value.length >>> 0;\r\n return len\r\n ? this.uint32(len).push(writeBytesBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\nvar writeStringBuffer = (function() { // eslint-disable-line wrap-iife\r\n return util.Buffer && util.Buffer.prototype.utf8Write // around forever, but not present in browser buffer\r\n ? function writeString_buffer_utf8Write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n }\r\n : function writeString_buffer_write(val, buf, pos) {\r\n if (val.length < 40)\r\n utf8.write(val, buf, pos);\r\n else\r\n buf.write(val, pos);\r\n };\r\n // Note that the plain JS encoder is faster for short strings, probably because of redundant assertions.\r\n // For a raw utf8Write, the breaking point is about 20 characters, for write it is around 40 characters.\r\n // Unfortunately, this does not translate 1:1 to real use cases, hence the common \"good enough\" limit of 40.\r\n})();\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = value.length < 40\r\n ? utf8.length(value)\r\n : util.Buffer.byteLength(value);\r\n return len\r\n ? this.uint32(len).push(writeStringBuffer, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 77f3a2165..bfd1b5553 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,14 +3,25 @@ var gulp = require("gulp"), var bundle = require("./scripts/bundle"); -gulp.task("default", [ "bundle-development", "bundle-production", "gzip-production" ]); +gulp.task("default", [ + "bundle-development", "bundle-production", "gzip-production", + "bundle-development-runtime", "bundle-production-runtime", "gzip-production-runtime" +]); gulp.task("bundle-development", bundle.bind(this, true )); - gulp.task("bundle-production" , bundle.bind(this, false)); +gulp.task("bundle-development-runtime", bundle.bind(this, true , true)); +gulp.task("bundle-production-runtime" , bundle.bind(this, false, true)); + gulp.task("gzip-production", [ "bundle-production" ], function() { return gulp.src('./dist/protobuf.min.js') .pipe(gzip({ gzipOptions: { level: 9 } })) .pipe(gulp.dest('./dist')); }); + +gulp.task("gzip-production-runtime", [ "bundle-production-runtime" ], function() { + return gulp.src('./dist/runtime/protobuf.min.js') + .pipe(gzip({ gzipOptions: { level: 9 } })) + .pipe(gulp.dest('./dist/runtime')); +}); diff --git a/runtime/index.js b/runtime/index.js index e27d45edc..bce678745 100644 --- a/runtime/index.js +++ b/runtime/index.js @@ -1,6 +1,27 @@ // This file exports just the bare minimum required to work with statically generated code. // Can be used as a drop-in replacement for the full library as it has the same general structure. -var protobuf_rt = exports; -protobuf_rt.Reader = require("../src/reader"); -protobuf_rt.Writer = require("../src/writer"); -protobuf_rt.util = require("../src/util/runtime"); +var protobuf = exports; + + var Writer = +protobuf.Writer = require("../src/writer"); +protobuf.BufferWriter = Writer.BufferWriter; + var Reader = +protobuf.Reader = require("../src/reader"); +protobuf.BufferReader = Reader.BufferReader; +protobuf.util = require("../src/util/runtime"); + +function configure() { + Reader._configure(); +} + +protobuf.configure = configure; + +// Be nice to AMD +if (typeof define === "function" && define.amd) + define(["long"], function(Long) { + if (Long) { + protobuf.util.Long = Long; + configure(); + } + return protobuf; + }); diff --git a/scripts/bundle.js b/scripts/bundle.js index fbb9072b4..fd5bb0f2f 100644 --- a/scripts/bundle.js +++ b/scripts/bundle.js @@ -24,10 +24,16 @@ var license = [ " */" ].join('\n') + '\n'; -function bundle(compress) { - var basedir = path.join(__dirname, "..", "src"); +function bundle(compress, runtime) { + var src = runtime + ? path.join(__dirname, "..", "runtime") + : path.join(__dirname, "..", "src"); + var dst = runtime + ? path.join(__dirname, "..", "dist", "runtime") + : path.join(__dirname, "..", "dist"); + var bundler = browserify({ - entries: basedir, + entries: src, debug: true }) return bundler @@ -51,7 +57,7 @@ function bundle(compress) { version: pkg.version })) .pipe(sourcemaps.write('.', { sourceRoot: '' })) - .pipe(vinylfs.dest(__dirname + '/../dist')) + .pipe(vinylfs.dest(dst)) .on("log", gutil.log) .on("error", gutil.log); } diff --git a/src/index.js b/src/index.js index 529d74e8b..46da11529 100644 --- a/src/index.js +++ b/src/index.js @@ -78,11 +78,12 @@ protobuf.tokenize = require("./tokenize"); protobuf.parse = require("./parse"); // Serialization + var Writer = protobuf.Writer = require("./writer"); -protobuf.BufferWriter = protobuf.Writer.BufferWriter; +protobuf.BufferWriter = Writer.BufferWriter; var Reader = protobuf.Reader = require("./reader"); -protobuf.BufferReader = protobuf.Reader.BufferReader; +protobuf.BufferReader = Reader.BufferReader; protobuf.encode = require("./encode"); protobuf.decode = require("./decode"); protobuf.verify = require("./verify"); diff --git a/src/util/longbits.js b/src/util/longbits.js index 3ed1169b3..c5190f097 100644 --- a/src/util/longbits.js +++ b/src/util/longbits.js @@ -2,7 +2,7 @@ module.exports = LongBits; -var util = require("../util"); +var util = require("../util/runtime"); /** * Any compatible Long instance.