text: /* eslint-disable */
  (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define([], factory);
  	else if(typeof exports === 'object')
  		exports["api"] = factory();
  	else
  		root["api"] = factory();
  })(window, function() {
  return /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId]) {
  /******/ 			return installedModules[moduleId].exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// define __esModule on exports
  /******/ 	__webpack_require__.r = function(exports) {
  /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 		}
  /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 	};
  /******/
  /******/ 	// create a fake namespace object
  /******/ 	// mode & 1: value is a module id, require it
  /******/ 	// mode & 2: merge all properties of value into the ns
  /******/ 	// mode & 4: return value when already ns object
  /******/ 	// mode & 8|1: behave like require
  /******/ 	__webpack_require__.t = function(value, mode) {
  /******/ 		if(mode & 1) value = __webpack_require__(value);
  /******/ 		if(mode & 8) return value;
  /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  /******/ 		var ns = Object.create(null);
  /******/ 		__webpack_require__.r(ns);
  /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  /******/ 		return ns;
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = "./client.js");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "./client.js":
  /*!*******************!*\
    !*** ./client.js ***!
    \*******************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _network_api_pb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./network_api_pb */ \"./network_api_pb.js\");\n/* harmony import */ var _network_api_pb__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_network_api_pb__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _network_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./network_api_grpc_web_pb */ \"./network_api_grpc_web_pb.js\");\n/* harmony import */ var _network_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_network_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _system_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./system_api_grpc_web_pb */ \"./system_api_grpc_web_pb.js\");\n/* harmony import */ var _system_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_system_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _diagnostics_api_pb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagnostics_api_pb */ \"./diagnostics_api_pb.js\");\n/* harmony import */ var _diagnostics_api_pb__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_diagnostics_api_pb__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _diagnostics_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./diagnostics_api_grpc_web_pb */ \"./diagnostics_api_grpc_web_pb.js\");\n/* harmony import */ var _diagnostics_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_diagnostics_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({ SystemServiceClient: _system_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_2__[\"SystemServiceClient\"], SystemServicePromiseClient: _system_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_2__[\"SystemServicePromiseClient\"], NetworkServiceClient: _network_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_1__[\"NetworkServiceClient\"], NetworkServicePromiseClient: _network_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_1__[\"NetworkServicePromiseClient\"], NameSpace: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"NameSpace\"], Frames: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"Frames\"], SignalInfo: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"SignalInfo\"], SignalId: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"SignalId\"], SignalIds: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"SignalIds\"], SubscriberConfig: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"SubscriberConfig\"], ClientId: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"ClientId\"], Empty: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"Empty\"], DiagnosticsRequest: _diagnostics_api_pb__WEBPACK_IMPORTED_MODULE_3__[\"DiagnosticsRequest\"], DiagnosticsResponse: _diagnostics_api_pb__WEBPACK_IMPORTED_MODULE_3__[\"DiagnosticsResponse\"], DiagnosticsServiceClient: _diagnostics_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_4__[\"DiagnosticsServiceClient\"], DiagnosticsServicePromiseClient: _diagnostics_api_grpc_web_pb__WEBPACK_IMPORTED_MODULE_4__[\"DiagnosticsServicePromiseClient\"], PublisherConfig: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"PublisherConfig\"], Signal: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"Signal\"], Signals: _network_api_pb__WEBPACK_IMPORTED_MODULE_0__[\"Signals\"] });\n\n\n//# sourceURL=webpack://api/./client.js?");
  
  /***/ }),
  
  /***/ "./common_pb.js":
  /*!**********************!*\
    !*** ./common_pb.js ***!
    \**********************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview\r\n * @enhanceable\r\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\r\n *     field starts with 'MSG_' and isn't a translatable message.\r\n * @public\r\n */\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\nvar jspb = __webpack_require__(/*! google-protobuf */ \"./node_modules/google-protobuf/google-protobuf.js\");\r\nvar goog = jspb;\r\nvar global = Function('return this')();\r\n\r\ngoog.exportSymbol('proto.base.ClientId', null, global);\r\ngoog.exportSymbol('proto.base.Configuration', null, global);\r\ngoog.exportSymbol('proto.base.Empty', null, global);\r\ngoog.exportSymbol('proto.base.FrameInfo', null, global);\r\ngoog.exportSymbol('proto.base.Frames', null, global);\r\ngoog.exportSymbol('proto.base.MetaData', null, global);\r\ngoog.exportSymbol('proto.base.NameSpace', null, global);\r\ngoog.exportSymbol('proto.base.NetworkInfo', null, global);\r\ngoog.exportSymbol('proto.base.SignalId', null, global);\r\ngoog.exportSymbol('proto.base.SignalInfo', null, global);\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.Empty = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.Empty, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.Empty.displayName = 'proto.base.Empty';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.Empty.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.Empty.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.Empty} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Empty.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.Empty}\r\n */\r\nproto.base.Empty.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.Empty;\r\n  return proto.base.Empty.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.Empty} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.Empty}\r\n */\r\nproto.base.Empty.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Empty.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.Empty.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.Empty} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Empty.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.ClientId = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.ClientId, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.ClientId.displayName = 'proto.base.ClientId';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.ClientId.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.ClientId.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.ClientId} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.ClientId.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\")\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.ClientId}\r\n */\r\nproto.base.ClientId.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.ClientId;\r\n  return proto.base.ClientId.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.ClientId} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.ClientId}\r\n */\r\nproto.base.ClientId.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setId(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.ClientId.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.ClientId.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.ClientId} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.ClientId.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getId();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      1,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional string id = 1;\r\n * @return {string}\r\n */\r\nproto.base.ClientId.prototype.getId = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.ClientId.prototype.setId = function(value) {\r\n  jspb.Message.setField(this, 1, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.SignalId = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.SignalId, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.SignalId.displayName = 'proto.base.SignalId';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.SignalId.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.SignalId.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.SignalId} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalId.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\r\n    namespace: (f = msg.getNamespace()) && proto.base.NameSpace.toObject(includeInstance, f)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.SignalId}\r\n */\r\nproto.base.SignalId.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.SignalId;\r\n  return proto.base.SignalId.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.SignalId} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.SignalId}\r\n */\r\nproto.base.SignalId.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setName(value);\r\n      break;\r\n    case 2:\r\n      var value = new proto.base.NameSpace;\r\n      reader.readMessage(value,proto.base.NameSpace.deserializeBinaryFromReader);\r\n      msg.setNamespace(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.SignalId.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.SignalId.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.SignalId} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalId.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getName();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      1,\r\n      f\r\n    );\r\n  }\r\n  f = message.getNamespace();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      2,\r\n      f,\r\n      proto.base.NameSpace.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional string name = 1;\r\n * @return {string}\r\n */\r\nproto.base.SignalId.prototype.getName = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.SignalId.prototype.setName = function(value) {\r\n  jspb.Message.setField(this, 1, value);\r\n};\r\n\r\n\r\n/**\r\n * optional NameSpace namespace = 2;\r\n * @return {?proto.base.NameSpace}\r\n */\r\nproto.base.SignalId.prototype.getNamespace = function() {\r\n  return /** @type{?proto.base.NameSpace} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.NameSpace, 2));\r\n};\r\n\r\n\r\n/** @param {?proto.base.NameSpace|undefined} value */\r\nproto.base.SignalId.prototype.setNamespace = function(value) {\r\n  jspb.Message.setWrapperField(this, 2, value);\r\n};\r\n\r\n\r\nproto.base.SignalId.prototype.clearNamespace = function() {\r\n  this.setNamespace(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.SignalId.prototype.hasNamespace = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.SignalInfo = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.SignalInfo, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.SignalInfo.displayName = 'proto.base.SignalInfo';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.SignalInfo.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.SignalInfo.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.SignalInfo} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalInfo.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    id: (f = msg.getId()) && proto.base.SignalId.toObject(includeInstance, f),\r\n    metadata: (f = msg.getMetadata()) && proto.base.MetaData.toObject(includeInstance, f)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.SignalInfo}\r\n */\r\nproto.base.SignalInfo.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.SignalInfo;\r\n  return proto.base.SignalInfo.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.SignalInfo} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.SignalInfo}\r\n */\r\nproto.base.SignalInfo.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.SignalId;\r\n      reader.readMessage(value,proto.base.SignalId.deserializeBinaryFromReader);\r\n      msg.setId(value);\r\n      break;\r\n    case 2:\r\n      var value = new proto.base.MetaData;\r\n      reader.readMessage(value,proto.base.MetaData.deserializeBinaryFromReader);\r\n      msg.setMetadata(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.SignalInfo.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.SignalInfo.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.SignalInfo} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalInfo.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getId();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      proto.base.SignalId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getMetadata();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      2,\r\n      f,\r\n      proto.base.MetaData.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional SignalId id = 1;\r\n * @return {?proto.base.SignalId}\r\n */\r\nproto.base.SignalInfo.prototype.getId = function() {\r\n  return /** @type{?proto.base.SignalId} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.SignalId, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalId|undefined} value */\r\nproto.base.SignalInfo.prototype.setId = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.SignalInfo.prototype.clearId = function() {\r\n  this.setId(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.SignalInfo.prototype.hasId = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional MetaData metaData = 2;\r\n * @return {?proto.base.MetaData}\r\n */\r\nproto.base.SignalInfo.prototype.getMetadata = function() {\r\n  return /** @type{?proto.base.MetaData} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.MetaData, 2));\r\n};\r\n\r\n\r\n/** @param {?proto.base.MetaData|undefined} value */\r\nproto.base.SignalInfo.prototype.setMetadata = function(value) {\r\n  jspb.Message.setWrapperField(this, 2, value);\r\n};\r\n\r\n\r\nproto.base.SignalInfo.prototype.clearMetadata = function() {\r\n  this.setMetadata(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.SignalInfo.prototype.hasMetadata = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.MetaData = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.MetaData, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.MetaData.displayName = 'proto.base.MetaData';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.MetaData.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.MetaData.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.MetaData} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.MetaData.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    description: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\r\n    max: jspb.Message.getFieldWithDefault(msg, 5, 0),\r\n    min: jspb.Message.getFieldWithDefault(msg, 6, 0),\r\n    unit: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\r\n    size: jspb.Message.getFieldWithDefault(msg, 8, 0),\r\n    israw: jspb.Message.getFieldWithDefault(msg, 9, false)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.MetaData}\r\n */\r\nproto.base.MetaData.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.MetaData;\r\n  return proto.base.MetaData.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.MetaData} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.MetaData}\r\n */\r\nproto.base.MetaData.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 4:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setDescription(value);\r\n      break;\r\n    case 5:\r\n      var value = /** @type {number} */ (reader.readInt32());\r\n      msg.setMax(value);\r\n      break;\r\n    case 6:\r\n      var value = /** @type {number} */ (reader.readInt32());\r\n      msg.setMin(value);\r\n      break;\r\n    case 7:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setUnit(value);\r\n      break;\r\n    case 8:\r\n      var value = /** @type {number} */ (reader.readInt32());\r\n      msg.setSize(value);\r\n      break;\r\n    case 9:\r\n      var value = /** @type {boolean} */ (reader.readBool());\r\n      msg.setIsraw(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.MetaData.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.MetaData.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.MetaData} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.MetaData.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getDescription();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      4,\r\n      f\r\n    );\r\n  }\r\n  f = message.getMax();\r\n  if (f !== 0) {\r\n    writer.writeInt32(\r\n      5,\r\n      f\r\n    );\r\n  }\r\n  f = message.getMin();\r\n  if (f !== 0) {\r\n    writer.writeInt32(\r\n      6,\r\n      f\r\n    );\r\n  }\r\n  f = message.getUnit();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      7,\r\n      f\r\n    );\r\n  }\r\n  f = message.getSize();\r\n  if (f !== 0) {\r\n    writer.writeInt32(\r\n      8,\r\n      f\r\n    );\r\n  }\r\n  f = message.getIsraw();\r\n  if (f) {\r\n    writer.writeBool(\r\n      9,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional string description = 4;\r\n * @return {string}\r\n */\r\nproto.base.MetaData.prototype.getDescription = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.MetaData.prototype.setDescription = function(value) {\r\n  jspb.Message.setField(this, 4, value);\r\n};\r\n\r\n\r\n/**\r\n * optional int32 max = 5;\r\n * @return {number}\r\n */\r\nproto.base.MetaData.prototype.getMax = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.MetaData.prototype.setMax = function(value) {\r\n  jspb.Message.setField(this, 5, value);\r\n};\r\n\r\n\r\n/**\r\n * optional int32 min = 6;\r\n * @return {number}\r\n */\r\nproto.base.MetaData.prototype.getMin = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.MetaData.prototype.setMin = function(value) {\r\n  jspb.Message.setField(this, 6, value);\r\n};\r\n\r\n\r\n/**\r\n * optional string unit = 7;\r\n * @return {string}\r\n */\r\nproto.base.MetaData.prototype.getUnit = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.MetaData.prototype.setUnit = function(value) {\r\n  jspb.Message.setField(this, 7, value);\r\n};\r\n\r\n\r\n/**\r\n * optional int32 size = 8;\r\n * @return {number}\r\n */\r\nproto.base.MetaData.prototype.getSize = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.MetaData.prototype.setSize = function(value) {\r\n  jspb.Message.setField(this, 8, value);\r\n};\r\n\r\n\r\n/**\r\n * optional bool isRaw = 9;\r\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\r\n * You should avoid comparisons like {@code val === true/false} in those cases.\r\n * @return {boolean}\r\n */\r\nproto.base.MetaData.prototype.getIsraw = function() {\r\n  return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 9, false));\r\n};\r\n\r\n\r\n/** @param {boolean} value */\r\nproto.base.MetaData.prototype.setIsraw = function(value) {\r\n  jspb.Message.setField(this, 9, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.NameSpace = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.NameSpace, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.NameSpace.displayName = 'proto.base.NameSpace';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.NameSpace.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.NameSpace.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.NameSpace} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.NameSpace.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\")\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.NameSpace}\r\n */\r\nproto.base.NameSpace.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.NameSpace;\r\n  return proto.base.NameSpace.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.NameSpace} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.NameSpace}\r\n */\r\nproto.base.NameSpace.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setName(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.NameSpace.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.NameSpace.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.NameSpace} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.NameSpace.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getName();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      1,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional string name = 1;\r\n * @return {string}\r\n */\r\nproto.base.NameSpace.prototype.getName = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.NameSpace.prototype.setName = function(value) {\r\n  jspb.Message.setField(this, 1, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.Configuration = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.base.Configuration.repeatedFields_, null);\r\n};\r\ngoog.inherits(proto.base.Configuration, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.Configuration.displayName = 'proto.base.Configuration';\r\n}\r\n/**\r\n * List of repeated fields within this message type.\r\n * @private {!Array<number>}\r\n * @const\r\n */\r\nproto.base.Configuration.repeatedFields_ = [1];\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.Configuration.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.Configuration.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.Configuration} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Configuration.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    networkinfoList: jspb.Message.toObjectList(msg.getNetworkinfoList(),\r\n    proto.base.NetworkInfo.toObject, includeInstance)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.Configuration}\r\n */\r\nproto.base.Configuration.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.Configuration;\r\n  return proto.base.Configuration.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.Configuration} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.Configuration}\r\n */\r\nproto.base.Configuration.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.NetworkInfo;\r\n      reader.readMessage(value,proto.base.NetworkInfo.deserializeBinaryFromReader);\r\n      msg.addNetworkinfo(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Configuration.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.Configuration.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.Configuration} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Configuration.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getNetworkinfoList();\r\n  if (f.length > 0) {\r\n    writer.writeRepeatedMessage(\r\n      1,\r\n      f,\r\n      proto.base.NetworkInfo.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * repeated NetworkInfo networkInfo = 1;\r\n * @return {!Array.<!proto.base.NetworkInfo>}\r\n */\r\nproto.base.Configuration.prototype.getNetworkinfoList = function() {\r\n  return /** @type{!Array.<!proto.base.NetworkInfo>} */ (\r\n    jspb.Message.getRepeatedWrapperField(this, proto.base.NetworkInfo, 1));\r\n};\r\n\r\n\r\n/** @param {!Array.<!proto.base.NetworkInfo>} value */\r\nproto.base.Configuration.prototype.setNetworkinfoList = function(value) {\r\n  jspb.Message.setRepeatedWrapperField(this, 1, value);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.NetworkInfo=} opt_value\r\n * @param {number=} opt_index\r\n * @return {!proto.base.NetworkInfo}\r\n */\r\nproto.base.Configuration.prototype.addNetworkinfo = function(opt_value, opt_index) {\r\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.NetworkInfo, opt_index);\r\n};\r\n\r\n\r\nproto.base.Configuration.prototype.clearNetworkinfoList = function() {\r\n  this.setNetworkinfoList([]);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.NetworkInfo = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.NetworkInfo, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.NetworkInfo.displayName = 'proto.base.NetworkInfo';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.NetworkInfo.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.NetworkInfo.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.NetworkInfo} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.NetworkInfo.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    namespace: (f = msg.getNamespace()) && proto.base.NameSpace.toObject(includeInstance, f),\r\n    type: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\r\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\")\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.NetworkInfo}\r\n */\r\nproto.base.NetworkInfo.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.NetworkInfo;\r\n  return proto.base.NetworkInfo.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.NetworkInfo} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.NetworkInfo}\r\n */\r\nproto.base.NetworkInfo.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.NameSpace;\r\n      reader.readMessage(value,proto.base.NameSpace.deserializeBinaryFromReader);\r\n      msg.setNamespace(value);\r\n      break;\r\n    case 2:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setType(value);\r\n      break;\r\n    case 3:\r\n      var value = /** @type {string} */ (reader.readString());\r\n      msg.setDescription(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.NetworkInfo.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.NetworkInfo.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.NetworkInfo} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.NetworkInfo.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getNamespace();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      proto.base.NameSpace.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getType();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      2,\r\n      f\r\n    );\r\n  }\r\n  f = message.getDescription();\r\n  if (f.length > 0) {\r\n    writer.writeString(\r\n      3,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional NameSpace namespace = 1;\r\n * @return {?proto.base.NameSpace}\r\n */\r\nproto.base.NetworkInfo.prototype.getNamespace = function() {\r\n  return /** @type{?proto.base.NameSpace} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.NameSpace, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.NameSpace|undefined} value */\r\nproto.base.NetworkInfo.prototype.setNamespace = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.NetworkInfo.prototype.clearNamespace = function() {\r\n  this.setNamespace(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.NetworkInfo.prototype.hasNamespace = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional string type = 2;\r\n * @return {string}\r\n */\r\nproto.base.NetworkInfo.prototype.getType = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.NetworkInfo.prototype.setType = function(value) {\r\n  jspb.Message.setField(this, 2, value);\r\n};\r\n\r\n\r\n/**\r\n * optional string description = 3;\r\n * @return {string}\r\n */\r\nproto.base.NetworkInfo.prototype.getDescription = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\r\n};\r\n\r\n\r\n/** @param {string} value */\r\nproto.base.NetworkInfo.prototype.setDescription = function(value) {\r\n  jspb.Message.setField(this, 3, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.FrameInfo = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.base.FrameInfo.repeatedFields_, null);\r\n};\r\ngoog.inherits(proto.base.FrameInfo, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.FrameInfo.displayName = 'proto.base.FrameInfo';\r\n}\r\n/**\r\n * List of repeated fields within this message type.\r\n * @private {!Array<number>}\r\n * @const\r\n */\r\nproto.base.FrameInfo.repeatedFields_ = [2];\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.FrameInfo.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.FrameInfo.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.FrameInfo} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.FrameInfo.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    signalinfo: (f = msg.getSignalinfo()) && proto.base.SignalInfo.toObject(includeInstance, f),\r\n    childinfoList: jspb.Message.toObjectList(msg.getChildinfoList(),\r\n    proto.base.SignalInfo.toObject, includeInstance)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.FrameInfo}\r\n */\r\nproto.base.FrameInfo.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.FrameInfo;\r\n  return proto.base.FrameInfo.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.FrameInfo} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.FrameInfo}\r\n */\r\nproto.base.FrameInfo.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.SignalInfo;\r\n      reader.readMessage(value,proto.base.SignalInfo.deserializeBinaryFromReader);\r\n      msg.setSignalinfo(value);\r\n      break;\r\n    case 2:\r\n      var value = new proto.base.SignalInfo;\r\n      reader.readMessage(value,proto.base.SignalInfo.deserializeBinaryFromReader);\r\n      msg.addChildinfo(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.FrameInfo.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.FrameInfo.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.FrameInfo} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.FrameInfo.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getSignalinfo();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      proto.base.SignalInfo.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getChildinfoList();\r\n  if (f.length > 0) {\r\n    writer.writeRepeatedMessage(\r\n      2,\r\n      f,\r\n      proto.base.SignalInfo.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional SignalInfo signalInfo = 1;\r\n * @return {?proto.base.SignalInfo}\r\n */\r\nproto.base.FrameInfo.prototype.getSignalinfo = function() {\r\n  return /** @type{?proto.base.SignalInfo} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.SignalInfo, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalInfo|undefined} value */\r\nproto.base.FrameInfo.prototype.setSignalinfo = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.FrameInfo.prototype.clearSignalinfo = function() {\r\n  this.setSignalinfo(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.FrameInfo.prototype.hasSignalinfo = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * repeated SignalInfo childInfo = 2;\r\n * @return {!Array.<!proto.base.SignalInfo>}\r\n */\r\nproto.base.FrameInfo.prototype.getChildinfoList = function() {\r\n  return /** @type{!Array.<!proto.base.SignalInfo>} */ (\r\n    jspb.Message.getRepeatedWrapperField(this, proto.base.SignalInfo, 2));\r\n};\r\n\r\n\r\n/** @param {!Array.<!proto.base.SignalInfo>} value */\r\nproto.base.FrameInfo.prototype.setChildinfoList = function(value) {\r\n  jspb.Message.setRepeatedWrapperField(this, 2, value);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.SignalInfo=} opt_value\r\n * @param {number=} opt_index\r\n * @return {!proto.base.SignalInfo}\r\n */\r\nproto.base.FrameInfo.prototype.addChildinfo = function(opt_value, opt_index) {\r\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.base.SignalInfo, opt_index);\r\n};\r\n\r\n\r\nproto.base.FrameInfo.prototype.clearChildinfoList = function() {\r\n  this.setChildinfoList([]);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.Frames = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.base.Frames.repeatedFields_, null);\r\n};\r\ngoog.inherits(proto.base.Frames, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.Frames.displayName = 'proto.base.Frames';\r\n}\r\n/**\r\n * List of repeated fields within this message type.\r\n * @private {!Array<number>}\r\n * @const\r\n */\r\nproto.base.Frames.repeatedFields_ = [1];\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.Frames.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.Frames.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.Frames} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Frames.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    frameList: jspb.Message.toObjectList(msg.getFrameList(),\r\n    proto.base.FrameInfo.toObject, includeInstance)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.Frames}\r\n */\r\nproto.base.Frames.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.Frames;\r\n  return proto.base.Frames.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.Frames} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.Frames}\r\n */\r\nproto.base.Frames.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.FrameInfo;\r\n      reader.readMessage(value,proto.base.FrameInfo.deserializeBinaryFromReader);\r\n      msg.addFrame(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Frames.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.Frames.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.Frames} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Frames.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getFrameList();\r\n  if (f.length > 0) {\r\n    writer.writeRepeatedMessage(\r\n      1,\r\n      f,\r\n      proto.base.FrameInfo.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * repeated FrameInfo frame = 1;\r\n * @return {!Array.<!proto.base.FrameInfo>}\r\n */\r\nproto.base.Frames.prototype.getFrameList = function() {\r\n  return /** @type{!Array.<!proto.base.FrameInfo>} */ (\r\n    jspb.Message.getRepeatedWrapperField(this, proto.base.FrameInfo, 1));\r\n};\r\n\r\n\r\n/** @param {!Array.<!proto.base.FrameInfo>} value */\r\nproto.base.Frames.prototype.setFrameList = function(value) {\r\n  jspb.Message.setRepeatedWrapperField(this, 1, value);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.FrameInfo=} opt_value\r\n * @param {number=} opt_index\r\n * @return {!proto.base.FrameInfo}\r\n */\r\nproto.base.Frames.prototype.addFrame = function(opt_value, opt_index) {\r\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.FrameInfo, opt_index);\r\n};\r\n\r\n\r\nproto.base.Frames.prototype.clearFrameList = function() {\r\n  this.setFrameList([]);\r\n};\r\n\r\n\r\ngoog.object.extend(exports, proto.base);\r\n\n\n//# sourceURL=webpack://api/./common_pb.js?");
  
  /***/ }),
  
  /***/ "./diagnostics_api_grpc_web_pb.js":
  /*!****************************************!*\
    !*** ./diagnostics_api_grpc_web_pb.js ***!
    \****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview gRPC-Web generated client stub for base\r\n * @enhanceable\r\n * @public\r\n */\r\n\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\n\r\n\r\nconst grpc = {};\r\ngrpc.web = __webpack_require__(/*! grpc-web */ \"./node_modules/grpc-web/index.js\");\r\n\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\")\r\nconst proto = {};\r\nproto.base = __webpack_require__(/*! ./diagnostics_api_pb.js */ \"./diagnostics_api_pb.js\");\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.DiagnosticsServiceClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!grpc.web.GrpcWebClientBase} The client\r\n   */\r\n  this.client_ = new grpc.web.GrpcWebClientBase(options);\r\n\r\n  /**\r\n   * @private @const {string} The hostname\r\n   */\r\n  this.hostname_ = hostname;\r\n\r\n  /**\r\n   * @private @const {?Object} The credentials to be used to connect\r\n   *    to the server\r\n   */\r\n  this.credentials_ = credentials;\r\n\r\n  /**\r\n   * @private @const {?Object} Options for the client\r\n   */\r\n  this.options_ = options;\r\n};\r\n\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.DiagnosticsServicePromiseClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!proto.base.DiagnosticsServiceClient} The delegate callback based client\r\n   */\r\n  this.delegateClient_ = new proto.base.DiagnosticsServiceClient(\r\n      hostname, credentials, options);\r\n\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.DiagnosticsRequest,\r\n *   !proto.base.DiagnosticsResponse>}\r\n */\r\nconst methodInfo_DiagnosticsService_SendDiagnosticsQuery = new grpc.web.AbstractClientBase.MethodInfo(\r\n  proto.base.DiagnosticsResponse,\r\n  /** @param {!proto.base.DiagnosticsRequest} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  proto.base.DiagnosticsResponse.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.DiagnosticsRequest} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @param {function(?grpc.web.Error, ?proto.base.DiagnosticsResponse)}\r\n *     callback The callback function(error, response)\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.DiagnosticsResponse>|undefined}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.DiagnosticsServiceClient.prototype.sendDiagnosticsQuery =\r\n    function(request, metadata, callback) {\r\n  return this.client_.rpcCall(this.hostname_ +\r\n      '/base.DiagnosticsService/SendDiagnosticsQuery',\r\n      request,\r\n      metadata || {},\r\n      methodInfo_DiagnosticsService_SendDiagnosticsQuery,\r\n      callback);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.DiagnosticsRequest} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!Promise<!proto.base.DiagnosticsResponse>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.DiagnosticsServicePromiseClient.prototype.sendDiagnosticsQuery =\r\n    function(request, metadata) {\r\n  var _this = this;\r\n  return new Promise(function (resolve, reject) {\r\n    _this.delegateClient_.sendDiagnosticsQuery(\r\n      request, metadata, function (error, response) {\r\n        error ? reject(error) : resolve(response);\r\n      });\r\n  });\r\n};\r\n\r\n\r\nmodule.exports = proto.base;\r\n\r\n\n\n//# sourceURL=webpack://api/./diagnostics_api_grpc_web_pb.js?");
  
  /***/ }),
  
  /***/ "./diagnostics_api_pb.js":
  /*!*******************************!*\
    !*** ./diagnostics_api_pb.js ***!
    \*******************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview\r\n * @enhanceable\r\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\r\n *     field starts with 'MSG_' and isn't a translatable message.\r\n * @public\r\n */\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\nvar jspb = __webpack_require__(/*! google-protobuf */ \"./node_modules/google-protobuf/google-protobuf.js\");\r\nvar goog = jspb;\r\nvar global = Function('return this')();\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\");\r\ngoog.exportSymbol('proto.base.DiagnosticsRequest', null, global);\r\ngoog.exportSymbol('proto.base.DiagnosticsResponse', null, global);\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.DiagnosticsRequest = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.DiagnosticsRequest, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.DiagnosticsRequest.displayName = 'proto.base.DiagnosticsRequest';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.DiagnosticsRequest.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.DiagnosticsRequest} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.DiagnosticsRequest.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    uplink: (f = msg.getUplink()) && common_pb.SignalId.toObject(includeInstance, f),\r\n    downlink: (f = msg.getDownlink()) && common_pb.SignalId.toObject(includeInstance, f),\r\n    serviceid: msg.getServiceid_asB64(),\r\n    dataidentifier: msg.getDataidentifier_asB64()\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.DiagnosticsRequest}\r\n */\r\nproto.base.DiagnosticsRequest.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.DiagnosticsRequest;\r\n  return proto.base.DiagnosticsRequest.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.DiagnosticsRequest} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.DiagnosticsRequest}\r\n */\r\nproto.base.DiagnosticsRequest.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new common_pb.SignalId;\r\n      reader.readMessage(value,common_pb.SignalId.deserializeBinaryFromReader);\r\n      msg.setUplink(value);\r\n      break;\r\n    case 2:\r\n      var value = new common_pb.SignalId;\r\n      reader.readMessage(value,common_pb.SignalId.deserializeBinaryFromReader);\r\n      msg.setDownlink(value);\r\n      break;\r\n    case 3:\r\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\r\n      msg.setServiceid(value);\r\n      break;\r\n    case 4:\r\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\r\n      msg.setDataidentifier(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.DiagnosticsRequest.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.DiagnosticsRequest} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.DiagnosticsRequest.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getUplink();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      common_pb.SignalId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getDownlink();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      2,\r\n      f,\r\n      common_pb.SignalId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getServiceid_asU8();\r\n  if (f.length > 0) {\r\n    writer.writeBytes(\r\n      3,\r\n      f\r\n    );\r\n  }\r\n  f = message.getDataidentifier_asU8();\r\n  if (f.length > 0) {\r\n    writer.writeBytes(\r\n      4,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional SignalId upLink = 1;\r\n * @return {?proto.base.SignalId}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getUplink = function() {\r\n  return /** @type{?proto.base.SignalId} */ (\r\n    jspb.Message.getWrapperField(this, common_pb.SignalId, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalId|undefined} value */\r\nproto.base.DiagnosticsRequest.prototype.setUplink = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.DiagnosticsRequest.prototype.clearUplink = function() {\r\n  this.setUplink(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.hasUplink = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional SignalId downLink = 2;\r\n * @return {?proto.base.SignalId}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getDownlink = function() {\r\n  return /** @type{?proto.base.SignalId} */ (\r\n    jspb.Message.getWrapperField(this, common_pb.SignalId, 2));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalId|undefined} value */\r\nproto.base.DiagnosticsRequest.prototype.setDownlink = function(value) {\r\n  jspb.Message.setWrapperField(this, 2, value);\r\n};\r\n\r\n\r\nproto.base.DiagnosticsRequest.prototype.clearDownlink = function() {\r\n  this.setDownlink(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.hasDownlink = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional bytes serviceId = 3;\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getServiceid = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes serviceId = 3;\r\n * This is a type-conversion wrapper around `getServiceid()`\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getServiceid_asB64 = function() {\r\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\r\n      this.getServiceid()));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes serviceId = 3;\r\n * Note that Uint8Array is not supported on all browsers.\r\n * @see http://caniuse.com/Uint8Array\r\n * This is a type-conversion wrapper around `getServiceid()`\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getServiceid_asU8 = function() {\r\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\r\n      this.getServiceid()));\r\n};\r\n\r\n\r\n/** @param {!(string|Uint8Array)} value */\r\nproto.base.DiagnosticsRequest.prototype.setServiceid = function(value) {\r\n  jspb.Message.setField(this, 3, value);\r\n};\r\n\r\n\r\n/**\r\n * optional bytes dataIdentifier = 4;\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getDataidentifier = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes dataIdentifier = 4;\r\n * This is a type-conversion wrapper around `getDataidentifier()`\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getDataidentifier_asB64 = function() {\r\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\r\n      this.getDataidentifier()));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes dataIdentifier = 4;\r\n * Note that Uint8Array is not supported on all browsers.\r\n * @see http://caniuse.com/Uint8Array\r\n * This is a type-conversion wrapper around `getDataidentifier()`\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.DiagnosticsRequest.prototype.getDataidentifier_asU8 = function() {\r\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\r\n      this.getDataidentifier()));\r\n};\r\n\r\n\r\n/** @param {!(string|Uint8Array)} value */\r\nproto.base.DiagnosticsRequest.prototype.setDataidentifier = function(value) {\r\n  jspb.Message.setField(this, 4, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.DiagnosticsResponse = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.DiagnosticsResponse, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.DiagnosticsResponse.displayName = 'proto.base.DiagnosticsResponse';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.DiagnosticsResponse.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.DiagnosticsResponse.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.DiagnosticsResponse} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.DiagnosticsResponse.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    raw: msg.getRaw_asB64()\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.DiagnosticsResponse}\r\n */\r\nproto.base.DiagnosticsResponse.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.DiagnosticsResponse;\r\n  return proto.base.DiagnosticsResponse.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.DiagnosticsResponse} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.DiagnosticsResponse}\r\n */\r\nproto.base.DiagnosticsResponse.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 5:\r\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\r\n      msg.setRaw(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.DiagnosticsResponse.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.DiagnosticsResponse.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.DiagnosticsResponse} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.DiagnosticsResponse.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getRaw_asU8();\r\n  if (f.length > 0) {\r\n    writer.writeBytes(\r\n      5,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsResponse.prototype.getRaw = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * This is a type-conversion wrapper around `getRaw()`\r\n * @return {string}\r\n */\r\nproto.base.DiagnosticsResponse.prototype.getRaw_asB64 = function() {\r\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\r\n      this.getRaw()));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * Note that Uint8Array is not supported on all browsers.\r\n * @see http://caniuse.com/Uint8Array\r\n * This is a type-conversion wrapper around `getRaw()`\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.DiagnosticsResponse.prototype.getRaw_asU8 = function() {\r\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\r\n      this.getRaw()));\r\n};\r\n\r\n\r\n/** @param {!(string|Uint8Array)} value */\r\nproto.base.DiagnosticsResponse.prototype.setRaw = function(value) {\r\n  jspb.Message.setField(this, 5, value);\r\n};\r\n\r\n\r\ngoog.object.extend(exports, proto.base);\r\n\n\n//# sourceURL=webpack://api/./diagnostics_api_pb.js?");
  
  /***/ }),
  
  /***/ "./network_api_grpc_web_pb.js":
  /*!************************************!*\
    !*** ./network_api_grpc_web_pb.js ***!
    \************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview gRPC-Web generated client stub for base\r\n * @enhanceable\r\n * @public\r\n */\r\n\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\n\r\n\r\nconst grpc = {};\r\ngrpc.web = __webpack_require__(/*! grpc-web */ \"./node_modules/grpc-web/index.js\");\r\n\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\")\r\nconst proto = {};\r\nproto.base = __webpack_require__(/*! ./network_api_pb.js */ \"./network_api_pb.js\");\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.NetworkServiceClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!grpc.web.GrpcWebClientBase} The client\r\n   */\r\n  this.client_ = new grpc.web.GrpcWebClientBase(options);\r\n\r\n  /**\r\n   * @private @const {string} The hostname\r\n   */\r\n  this.hostname_ = hostname;\r\n\r\n  /**\r\n   * @private @const {?Object} The credentials to be used to connect\r\n   *    to the server\r\n   */\r\n  this.credentials_ = credentials;\r\n\r\n  /**\r\n   * @private @const {?Object} Options for the client\r\n   */\r\n  this.options_ = options;\r\n};\r\n\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.NetworkServicePromiseClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!proto.base.NetworkServiceClient} The delegate callback based client\r\n   */\r\n  this.delegateClient_ = new proto.base.NetworkServiceClient(\r\n      hostname, credentials, options);\r\n\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.SubscriberConfig,\r\n *   !proto.base.Signals>}\r\n */\r\nconst methodInfo_NetworkService_SubscribeToSignals = new grpc.web.AbstractClientBase.MethodInfo(\r\n  proto.base.Signals,\r\n  /** @param {!proto.base.SubscriberConfig} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  proto.base.Signals.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.SubscriberConfig} request The request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Signals>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServiceClient.prototype.subscribeToSignals =\r\n    function(request, metadata) {\r\n  return this.client_.serverStreaming(this.hostname_ +\r\n      '/base.NetworkService/SubscribeToSignals',\r\n      request,\r\n      metadata,\r\n      methodInfo_NetworkService_SubscribeToSignals);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.SubscriberConfig} request The request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Signals>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServicePromiseClient.prototype.subscribeToSignals =\r\n    function(request, metadata) {\r\n  return this.delegateClient_.client_.serverStreaming(this.delegateClient_.hostname_ +\r\n      '/base.NetworkService/SubscribeToSignals',\r\n      request,\r\n      metadata,\r\n      methodInfo_NetworkService_SubscribeToSignals);\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.PublisherConfig,\r\n *   !proto.base.Empty>}\r\n */\r\nconst methodInfo_NetworkService_PublishSignals = new grpc.web.AbstractClientBase.MethodInfo(\r\n  common_pb.Empty,\r\n  /** @param {!proto.base.PublisherConfig} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  common_pb.Empty.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.PublisherConfig} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @param {function(?grpc.web.Error, ?proto.base.Empty)}\r\n *     callback The callback function(error, response)\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Empty>|undefined}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServiceClient.prototype.publishSignals =\r\n    function(request, metadata, callback) {\r\n  return this.client_.rpcCall(this.hostname_ +\r\n      '/base.NetworkService/PublishSignals',\r\n      request,\r\n      metadata || {},\r\n      methodInfo_NetworkService_PublishSignals,\r\n      callback);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.PublisherConfig} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!Promise<!proto.base.Empty>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServicePromiseClient.prototype.publishSignals =\r\n    function(request, metadata) {\r\n  var _this = this;\r\n  return new Promise(function (resolve, reject) {\r\n    _this.delegateClient_.publishSignals(\r\n      request, metadata, function (error, response) {\r\n        error ? reject(error) : resolve(response);\r\n      });\r\n  });\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.SignalIds,\r\n *   !proto.base.Signals>}\r\n */\r\nconst methodInfo_NetworkService_ReadSignals = new grpc.web.AbstractClientBase.MethodInfo(\r\n  proto.base.Signals,\r\n  /** @param {!proto.base.SignalIds} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  proto.base.Signals.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.SignalIds} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @param {function(?grpc.web.Error, ?proto.base.Signals)}\r\n *     callback The callback function(error, response)\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Signals>|undefined}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServiceClient.prototype.readSignals =\r\n    function(request, metadata, callback) {\r\n  return this.client_.rpcCall(this.hostname_ +\r\n      '/base.NetworkService/ReadSignals',\r\n      request,\r\n      metadata || {},\r\n      methodInfo_NetworkService_ReadSignals,\r\n      callback);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.SignalIds} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!Promise<!proto.base.Signals>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.NetworkServicePromiseClient.prototype.readSignals =\r\n    function(request, metadata) {\r\n  var _this = this;\r\n  return new Promise(function (resolve, reject) {\r\n    _this.delegateClient_.readSignals(\r\n      request, metadata, function (error, response) {\r\n        error ? reject(error) : resolve(response);\r\n      });\r\n  });\r\n};\r\n\r\n\r\nmodule.exports = proto.base;\r\n\r\n\n\n//# sourceURL=webpack://api/./network_api_grpc_web_pb.js?");
  
  /***/ }),
  
  /***/ "./network_api_pb.js":
  /*!***************************!*\
    !*** ./network_api_pb.js ***!
    \***************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview\r\n * @enhanceable\r\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\r\n *     field starts with 'MSG_' and isn't a translatable message.\r\n * @public\r\n */\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\nvar jspb = __webpack_require__(/*! google-protobuf */ \"./node_modules/google-protobuf/google-protobuf.js\");\r\nvar goog = jspb;\r\nvar global = Function('return this')();\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\");\r\ngoog.exportSymbol('proto.base.PublisherConfig', null, global);\r\ngoog.exportSymbol('proto.base.Signal', null, global);\r\ngoog.exportSymbol('proto.base.SignalIds', null, global);\r\ngoog.exportSymbol('proto.base.Signals', null, global);\r\ngoog.exportSymbol('proto.base.SubscriberConfig', null, global);\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.SubscriberConfig = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.SubscriberConfig, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.SubscriberConfig.displayName = 'proto.base.SubscriberConfig';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.SubscriberConfig.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.SubscriberConfig.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.SubscriberConfig} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SubscriberConfig.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    clientid: (f = msg.getClientid()) && common_pb.ClientId.toObject(includeInstance, f),\r\n    signals: (f = msg.getSignals()) && proto.base.SignalIds.toObject(includeInstance, f),\r\n    onchange: jspb.Message.getFieldWithDefault(msg, 3, false)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.SubscriberConfig}\r\n */\r\nproto.base.SubscriberConfig.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.SubscriberConfig;\r\n  return proto.base.SubscriberConfig.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.SubscriberConfig} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.SubscriberConfig}\r\n */\r\nproto.base.SubscriberConfig.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new common_pb.ClientId;\r\n      reader.readMessage(value,common_pb.ClientId.deserializeBinaryFromReader);\r\n      msg.setClientid(value);\r\n      break;\r\n    case 2:\r\n      var value = new proto.base.SignalIds;\r\n      reader.readMessage(value,proto.base.SignalIds.deserializeBinaryFromReader);\r\n      msg.setSignals(value);\r\n      break;\r\n    case 3:\r\n      var value = /** @type {boolean} */ (reader.readBool());\r\n      msg.setOnchange(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.SubscriberConfig.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.SubscriberConfig.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.SubscriberConfig} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SubscriberConfig.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getClientid();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      common_pb.ClientId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getSignals();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      2,\r\n      f,\r\n      proto.base.SignalIds.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getOnchange();\r\n  if (f) {\r\n    writer.writeBool(\r\n      3,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional ClientId clientId = 1;\r\n * @return {?proto.base.ClientId}\r\n */\r\nproto.base.SubscriberConfig.prototype.getClientid = function() {\r\n  return /** @type{?proto.base.ClientId} */ (\r\n    jspb.Message.getWrapperField(this, common_pb.ClientId, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.ClientId|undefined} value */\r\nproto.base.SubscriberConfig.prototype.setClientid = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.SubscriberConfig.prototype.clearClientid = function() {\r\n  this.setClientid(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.SubscriberConfig.prototype.hasClientid = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional SignalIds signals = 2;\r\n * @return {?proto.base.SignalIds}\r\n */\r\nproto.base.SubscriberConfig.prototype.getSignals = function() {\r\n  return /** @type{?proto.base.SignalIds} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.SignalIds, 2));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalIds|undefined} value */\r\nproto.base.SubscriberConfig.prototype.setSignals = function(value) {\r\n  jspb.Message.setWrapperField(this, 2, value);\r\n};\r\n\r\n\r\nproto.base.SubscriberConfig.prototype.clearSignals = function() {\r\n  this.setSignals(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.SubscriberConfig.prototype.hasSignals = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional bool onChange = 3;\r\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\r\n * You should avoid comparisons like {@code val === true/false} in those cases.\r\n * @return {boolean}\r\n */\r\nproto.base.SubscriberConfig.prototype.getOnchange = function() {\r\n  return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false));\r\n};\r\n\r\n\r\n/** @param {boolean} value */\r\nproto.base.SubscriberConfig.prototype.setOnchange = function(value) {\r\n  jspb.Message.setField(this, 3, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.SignalIds = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.base.SignalIds.repeatedFields_, null);\r\n};\r\ngoog.inherits(proto.base.SignalIds, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.SignalIds.displayName = 'proto.base.SignalIds';\r\n}\r\n/**\r\n * List of repeated fields within this message type.\r\n * @private {!Array<number>}\r\n * @const\r\n */\r\nproto.base.SignalIds.repeatedFields_ = [1];\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.SignalIds.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.SignalIds.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.SignalIds} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalIds.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    signalidList: jspb.Message.toObjectList(msg.getSignalidList(),\r\n    common_pb.SignalId.toObject, includeInstance)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.SignalIds}\r\n */\r\nproto.base.SignalIds.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.SignalIds;\r\n  return proto.base.SignalIds.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.SignalIds} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.SignalIds}\r\n */\r\nproto.base.SignalIds.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new common_pb.SignalId;\r\n      reader.readMessage(value,common_pb.SignalId.deserializeBinaryFromReader);\r\n      msg.addSignalid(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.SignalIds.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.SignalIds.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.SignalIds} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.SignalIds.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getSignalidList();\r\n  if (f.length > 0) {\r\n    writer.writeRepeatedMessage(\r\n      1,\r\n      f,\r\n      common_pb.SignalId.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * repeated SignalId signalId = 1;\r\n * @return {!Array.<!proto.base.SignalId>}\r\n */\r\nproto.base.SignalIds.prototype.getSignalidList = function() {\r\n  return /** @type{!Array.<!proto.base.SignalId>} */ (\r\n    jspb.Message.getRepeatedWrapperField(this, common_pb.SignalId, 1));\r\n};\r\n\r\n\r\n/** @param {!Array.<!proto.base.SignalId>} value */\r\nproto.base.SignalIds.prototype.setSignalidList = function(value) {\r\n  jspb.Message.setRepeatedWrapperField(this, 1, value);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.SignalId=} opt_value\r\n * @param {number=} opt_index\r\n * @return {!proto.base.SignalId}\r\n */\r\nproto.base.SignalIds.prototype.addSignalid = function(opt_value, opt_index) {\r\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.SignalId, opt_index);\r\n};\r\n\r\n\r\nproto.base.SignalIds.prototype.clearSignalidList = function() {\r\n  this.setSignalidList([]);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.Signals = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.base.Signals.repeatedFields_, null);\r\n};\r\ngoog.inherits(proto.base.Signals, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.Signals.displayName = 'proto.base.Signals';\r\n}\r\n/**\r\n * List of repeated fields within this message type.\r\n * @private {!Array<number>}\r\n * @const\r\n */\r\nproto.base.Signals.repeatedFields_ = [1];\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.Signals.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.Signals.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.Signals} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Signals.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    signalList: jspb.Message.toObjectList(msg.getSignalList(),\r\n    proto.base.Signal.toObject, includeInstance)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.Signals}\r\n */\r\nproto.base.Signals.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.Signals;\r\n  return proto.base.Signals.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.Signals} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.Signals}\r\n */\r\nproto.base.Signals.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.Signal;\r\n      reader.readMessage(value,proto.base.Signal.deserializeBinaryFromReader);\r\n      msg.addSignal(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Signals.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.Signals.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.Signals} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Signals.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getSignalList();\r\n  if (f.length > 0) {\r\n    writer.writeRepeatedMessage(\r\n      1,\r\n      f,\r\n      proto.base.Signal.serializeBinaryToWriter\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * repeated Signal signal = 1;\r\n * @return {!Array.<!proto.base.Signal>}\r\n */\r\nproto.base.Signals.prototype.getSignalList = function() {\r\n  return /** @type{!Array.<!proto.base.Signal>} */ (\r\n    jspb.Message.getRepeatedWrapperField(this, proto.base.Signal, 1));\r\n};\r\n\r\n\r\n/** @param {!Array.<!proto.base.Signal>} value */\r\nproto.base.Signals.prototype.setSignalList = function(value) {\r\n  jspb.Message.setRepeatedWrapperField(this, 1, value);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.Signal=} opt_value\r\n * @param {number=} opt_index\r\n * @return {!proto.base.Signal}\r\n */\r\nproto.base.Signals.prototype.addSignal = function(opt_value, opt_index) {\r\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.base.Signal, opt_index);\r\n};\r\n\r\n\r\nproto.base.Signals.prototype.clearSignalList = function() {\r\n  this.setSignalList([]);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.PublisherConfig = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\r\n};\r\ngoog.inherits(proto.base.PublisherConfig, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.PublisherConfig.displayName = 'proto.base.PublisherConfig';\r\n}\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.PublisherConfig.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.PublisherConfig.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.PublisherConfig} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.PublisherConfig.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    signals: (f = msg.getSignals()) && proto.base.Signals.toObject(includeInstance, f),\r\n    clientid: (f = msg.getClientid()) && common_pb.ClientId.toObject(includeInstance, f),\r\n    frequency: jspb.Message.getFieldWithDefault(msg, 3, 0)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.PublisherConfig}\r\n */\r\nproto.base.PublisherConfig.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.PublisherConfig;\r\n  return proto.base.PublisherConfig.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.PublisherConfig} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.PublisherConfig}\r\n */\r\nproto.base.PublisherConfig.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new proto.base.Signals;\r\n      reader.readMessage(value,proto.base.Signals.deserializeBinaryFromReader);\r\n      msg.setSignals(value);\r\n      break;\r\n    case 2:\r\n      var value = new common_pb.ClientId;\r\n      reader.readMessage(value,common_pb.ClientId.deserializeBinaryFromReader);\r\n      msg.setClientid(value);\r\n      break;\r\n    case 3:\r\n      var value = /** @type {number} */ (reader.readInt32());\r\n      msg.setFrequency(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.PublisherConfig.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.PublisherConfig.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.PublisherConfig} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.PublisherConfig.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getSignals();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      proto.base.Signals.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getClientid();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      2,\r\n      f,\r\n      common_pb.ClientId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = message.getFrequency();\r\n  if (f !== 0) {\r\n    writer.writeInt32(\r\n      3,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional Signals signals = 1;\r\n * @return {?proto.base.Signals}\r\n */\r\nproto.base.PublisherConfig.prototype.getSignals = function() {\r\n  return /** @type{?proto.base.Signals} */ (\r\n    jspb.Message.getWrapperField(this, proto.base.Signals, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.Signals|undefined} value */\r\nproto.base.PublisherConfig.prototype.setSignals = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.PublisherConfig.prototype.clearSignals = function() {\r\n  this.setSignals(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.PublisherConfig.prototype.hasSignals = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional ClientId clientId = 2;\r\n * @return {?proto.base.ClientId}\r\n */\r\nproto.base.PublisherConfig.prototype.getClientid = function() {\r\n  return /** @type{?proto.base.ClientId} */ (\r\n    jspb.Message.getWrapperField(this, common_pb.ClientId, 2));\r\n};\r\n\r\n\r\n/** @param {?proto.base.ClientId|undefined} value */\r\nproto.base.PublisherConfig.prototype.setClientid = function(value) {\r\n  jspb.Message.setWrapperField(this, 2, value);\r\n};\r\n\r\n\r\nproto.base.PublisherConfig.prototype.clearClientid = function() {\r\n  this.setClientid(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.PublisherConfig.prototype.hasClientid = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional int32 frequency = 3;\r\n * @return {number}\r\n */\r\nproto.base.PublisherConfig.prototype.getFrequency = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.PublisherConfig.prototype.setFrequency = function(value) {\r\n  jspb.Message.setField(this, 3, value);\r\n};\r\n\r\n\r\n\r\n/**\r\n * Generated by JsPbCodeGenerator.\r\n * @param {Array=} opt_data Optional initial data array, typically from a\r\n * server response, or constructed directly in Javascript. The array is used\r\n * in place and becomes part of the constructed object. It is not cloned.\r\n * If no data is provided, the constructed object will be empty, but still\r\n * valid.\r\n * @extends {jspb.Message}\r\n * @constructor\r\n */\r\nproto.base.Signal = function(opt_data) {\r\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.base.Signal.oneofGroups_);\r\n};\r\ngoog.inherits(proto.base.Signal, jspb.Message);\r\nif (goog.DEBUG && !COMPILED) {\r\n  proto.base.Signal.displayName = 'proto.base.Signal';\r\n}\r\n/**\r\n * Oneof group definitions for this message. Each group defines the field\r\n * numbers belonging to that group. When of these fields' value is set, all\r\n * other fields in the group are cleared. During deserialization, if multiple\r\n * fields are encountered for a group, only the last value seen will be kept.\r\n * @private {!Array<!Array<number>>}\r\n * @const\r\n */\r\nproto.base.Signal.oneofGroups_ = [[2,3,4,6]];\r\n\r\n/**\r\n * @enum {number}\r\n */\r\nproto.base.Signal.PayloadCase = {\r\n  PAYLOAD_NOT_SET: 0,\r\n  INTEGER: 2,\r\n  DOUBLE: 3,\r\n  ARBITRATION: 4,\r\n  EMPTY: 6\r\n};\r\n\r\n/**\r\n * @return {proto.base.Signal.PayloadCase}\r\n */\r\nproto.base.Signal.prototype.getPayloadCase = function() {\r\n  return /** @type {proto.base.Signal.PayloadCase} */(jspb.Message.computeOneofCase(this, proto.base.Signal.oneofGroups_[0]));\r\n};\r\n\r\n\r\n\r\nif (jspb.Message.GENERATE_TO_OBJECT) {\r\n/**\r\n * Creates an object representation of this proto suitable for use in Soy templates.\r\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\r\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\r\n * For the list of reserved names please see:\r\n *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\r\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\r\n *     for transitional soy proto support: http://goto/soy-param-migration\r\n * @return {!Object}\r\n */\r\nproto.base.Signal.prototype.toObject = function(opt_includeInstance) {\r\n  return proto.base.Signal.toObject(opt_includeInstance, this);\r\n};\r\n\r\n\r\n/**\r\n * Static version of the {@see toObject} method.\r\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\r\n *     instance for transitional soy proto support:\r\n *     http://goto/soy-param-migration\r\n * @param {!proto.base.Signal} msg The msg instance to transform.\r\n * @return {!Object}\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Signal.toObject = function(includeInstance, msg) {\r\n  var f, obj = {\r\n    id: (f = msg.getId()) && common_pb.SignalId.toObject(includeInstance, f),\r\n    integer: jspb.Message.getFieldWithDefault(msg, 2, 0),\r\n    pb_double: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),\r\n    arbitration: jspb.Message.getFieldWithDefault(msg, 4, false),\r\n    empty: jspb.Message.getFieldWithDefault(msg, 6, false),\r\n    raw: msg.getRaw_asB64(),\r\n    timestamp: jspb.Message.getFieldWithDefault(msg, 7, 0)\r\n  };\r\n\r\n  if (includeInstance) {\r\n    obj.$jspbMessageInstance = msg;\r\n  }\r\n  return obj;\r\n};\r\n}\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format).\r\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\r\n * @return {!proto.base.Signal}\r\n */\r\nproto.base.Signal.deserializeBinary = function(bytes) {\r\n  var reader = new jspb.BinaryReader(bytes);\r\n  var msg = new proto.base.Signal;\r\n  return proto.base.Signal.deserializeBinaryFromReader(msg, reader);\r\n};\r\n\r\n\r\n/**\r\n * Deserializes binary data (in protobuf wire format) from the\r\n * given reader into the given message object.\r\n * @param {!proto.base.Signal} msg The message object to deserialize into.\r\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\r\n * @return {!proto.base.Signal}\r\n */\r\nproto.base.Signal.deserializeBinaryFromReader = function(msg, reader) {\r\n  while (reader.nextField()) {\r\n    if (reader.isEndGroup()) {\r\n      break;\r\n    }\r\n    var field = reader.getFieldNumber();\r\n    switch (field) {\r\n    case 1:\r\n      var value = new common_pb.SignalId;\r\n      reader.readMessage(value,common_pb.SignalId.deserializeBinaryFromReader);\r\n      msg.setId(value);\r\n      break;\r\n    case 2:\r\n      var value = /** @type {number} */ (reader.readInt64());\r\n      msg.setInteger(value);\r\n      break;\r\n    case 3:\r\n      var value = /** @type {number} */ (reader.readDouble());\r\n      msg.setDouble(value);\r\n      break;\r\n    case 4:\r\n      var value = /** @type {boolean} */ (reader.readBool());\r\n      msg.setArbitration(value);\r\n      break;\r\n    case 6:\r\n      var value = /** @type {boolean} */ (reader.readBool());\r\n      msg.setEmpty(value);\r\n      break;\r\n    case 5:\r\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\r\n      msg.setRaw(value);\r\n      break;\r\n    case 7:\r\n      var value = /** @type {number} */ (reader.readInt64());\r\n      msg.setTimestamp(value);\r\n      break;\r\n    default:\r\n      reader.skipField();\r\n      break;\r\n    }\r\n  }\r\n  return msg;\r\n};\r\n\r\n\r\n/**\r\n * Serializes the message to binary data (in protobuf wire format).\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Signal.prototype.serializeBinary = function() {\r\n  var writer = new jspb.BinaryWriter();\r\n  proto.base.Signal.serializeBinaryToWriter(this, writer);\r\n  return writer.getResultBuffer();\r\n};\r\n\r\n\r\n/**\r\n * Serializes the given message to binary data (in protobuf wire\r\n * format), writing to the given BinaryWriter.\r\n * @param {!proto.base.Signal} message\r\n * @param {!jspb.BinaryWriter} writer\r\n * @suppress {unusedLocalVariables} f is only used for nested messages\r\n */\r\nproto.base.Signal.serializeBinaryToWriter = function(message, writer) {\r\n  var f = undefined;\r\n  f = message.getId();\r\n  if (f != null) {\r\n    writer.writeMessage(\r\n      1,\r\n      f,\r\n      common_pb.SignalId.serializeBinaryToWriter\r\n    );\r\n  }\r\n  f = /** @type {number} */ (jspb.Message.getField(message, 2));\r\n  if (f != null) {\r\n    writer.writeInt64(\r\n      2,\r\n      f\r\n    );\r\n  }\r\n  f = /** @type {number} */ (jspb.Message.getField(message, 3));\r\n  if (f != null) {\r\n    writer.writeDouble(\r\n      3,\r\n      f\r\n    );\r\n  }\r\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 4));\r\n  if (f != null) {\r\n    writer.writeBool(\r\n      4,\r\n      f\r\n    );\r\n  }\r\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 6));\r\n  if (f != null) {\r\n    writer.writeBool(\r\n      6,\r\n      f\r\n    );\r\n  }\r\n  f = message.getRaw_asU8();\r\n  if (f.length > 0) {\r\n    writer.writeBytes(\r\n      5,\r\n      f\r\n    );\r\n  }\r\n  f = message.getTimestamp();\r\n  if (f !== 0) {\r\n    writer.writeInt64(\r\n      7,\r\n      f\r\n    );\r\n  }\r\n};\r\n\r\n\r\n/**\r\n * optional SignalId id = 1;\r\n * @return {?proto.base.SignalId}\r\n */\r\nproto.base.Signal.prototype.getId = function() {\r\n  return /** @type{?proto.base.SignalId} */ (\r\n    jspb.Message.getWrapperField(this, common_pb.SignalId, 1));\r\n};\r\n\r\n\r\n/** @param {?proto.base.SignalId|undefined} value */\r\nproto.base.Signal.prototype.setId = function(value) {\r\n  jspb.Message.setWrapperField(this, 1, value);\r\n};\r\n\r\n\r\nproto.base.Signal.prototype.clearId = function() {\r\n  this.setId(undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.Signal.prototype.hasId = function() {\r\n  return jspb.Message.getField(this, 1) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional int64 integer = 2;\r\n * @return {number}\r\n */\r\nproto.base.Signal.prototype.getInteger = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.Signal.prototype.setInteger = function(value) {\r\n  jspb.Message.setOneofField(this, 2, proto.base.Signal.oneofGroups_[0], value);\r\n};\r\n\r\n\r\nproto.base.Signal.prototype.clearInteger = function() {\r\n  jspb.Message.setOneofField(this, 2, proto.base.Signal.oneofGroups_[0], undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.Signal.prototype.hasInteger = function() {\r\n  return jspb.Message.getField(this, 2) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional double double = 3;\r\n * @return {number}\r\n */\r\nproto.base.Signal.prototype.getDouble = function() {\r\n  return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.Signal.prototype.setDouble = function(value) {\r\n  jspb.Message.setOneofField(this, 3, proto.base.Signal.oneofGroups_[0], value);\r\n};\r\n\r\n\r\nproto.base.Signal.prototype.clearDouble = function() {\r\n  jspb.Message.setOneofField(this, 3, proto.base.Signal.oneofGroups_[0], undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.Signal.prototype.hasDouble = function() {\r\n  return jspb.Message.getField(this, 3) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional bool arbitration = 4;\r\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\r\n * You should avoid comparisons like {@code val === true/false} in those cases.\r\n * @return {boolean}\r\n */\r\nproto.base.Signal.prototype.getArbitration = function() {\r\n  return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false));\r\n};\r\n\r\n\r\n/** @param {boolean} value */\r\nproto.base.Signal.prototype.setArbitration = function(value) {\r\n  jspb.Message.setOneofField(this, 4, proto.base.Signal.oneofGroups_[0], value);\r\n};\r\n\r\n\r\nproto.base.Signal.prototype.clearArbitration = function() {\r\n  jspb.Message.setOneofField(this, 4, proto.base.Signal.oneofGroups_[0], undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.Signal.prototype.hasArbitration = function() {\r\n  return jspb.Message.getField(this, 4) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional bool empty = 6;\r\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\r\n * You should avoid comparisons like {@code val === true/false} in those cases.\r\n * @return {boolean}\r\n */\r\nproto.base.Signal.prototype.getEmpty = function() {\r\n  return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 6, false));\r\n};\r\n\r\n\r\n/** @param {boolean} value */\r\nproto.base.Signal.prototype.setEmpty = function(value) {\r\n  jspb.Message.setOneofField(this, 6, proto.base.Signal.oneofGroups_[0], value);\r\n};\r\n\r\n\r\nproto.base.Signal.prototype.clearEmpty = function() {\r\n  jspb.Message.setOneofField(this, 6, proto.base.Signal.oneofGroups_[0], undefined);\r\n};\r\n\r\n\r\n/**\r\n * Returns whether this field is set.\r\n * @return {!boolean}\r\n */\r\nproto.base.Signal.prototype.hasEmpty = function() {\r\n  return jspb.Message.getField(this, 6) != null;\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * @return {string}\r\n */\r\nproto.base.Signal.prototype.getRaw = function() {\r\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * This is a type-conversion wrapper around `getRaw()`\r\n * @return {string}\r\n */\r\nproto.base.Signal.prototype.getRaw_asB64 = function() {\r\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\r\n      this.getRaw()));\r\n};\r\n\r\n\r\n/**\r\n * optional bytes raw = 5;\r\n * Note that Uint8Array is not supported on all browsers.\r\n * @see http://caniuse.com/Uint8Array\r\n * This is a type-conversion wrapper around `getRaw()`\r\n * @return {!Uint8Array}\r\n */\r\nproto.base.Signal.prototype.getRaw_asU8 = function() {\r\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\r\n      this.getRaw()));\r\n};\r\n\r\n\r\n/** @param {!(string|Uint8Array)} value */\r\nproto.base.Signal.prototype.setRaw = function(value) {\r\n  jspb.Message.setField(this, 5, value);\r\n};\r\n\r\n\r\n/**\r\n * optional int64 timestamp = 7;\r\n * @return {number}\r\n */\r\nproto.base.Signal.prototype.getTimestamp = function() {\r\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\r\n};\r\n\r\n\r\n/** @param {number} value */\r\nproto.base.Signal.prototype.setTimestamp = function(value) {\r\n  jspb.Message.setField(this, 7, value);\r\n};\r\n\r\n\r\ngoog.object.extend(exports, proto.base);\r\n\n\n//# sourceURL=webpack://api/./network_api_pb.js?");
  
  /***/ }),
  
  /***/ "./node_modules/base64-js/index.js":
  /*!*****************************************!*\
    !*** ./node_modules/base64-js/index.js ***!
    \*****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  for (var i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(\n      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n    ))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n//# sourceURL=webpack://api/./node_modules/base64-js/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/google-protobuf/google-protobuf.js":
  /*!*********************************************************!*\
    !*** ./node_modules/google-protobuf/google-protobuf.js ***!
    \*********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/* WEBPACK VAR INJECTION */(function(global, Buffer) {var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};$jscomp.getGlobal=function(a){return\"undefined\"!=typeof window&&window===a?a:\"undefined\"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(\".\");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};$jscomp.polyfill(\"Array.prototype.findIndex\",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).i}},\"es6\",\"es3\");\n$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError(\"The 'this' value for String.prototype.\"+c+\" must not be null or undefined\");if(b instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+c+\" must not be a regular expression\");return a+\"\"};\n$jscomp.polyfill(\"String.prototype.startsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"startsWith\");a+=\"\";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g<f&&c<e;)if(b[c++]!=a[g++])return!1;return g>=f}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.endsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"endsWith\");a+=\"\";void 0===c&&(c=b.length);c=Math.max(0,Math.min(c|0,b.length));for(var e=a.length;0<e&&0<c;)if(b[--c]!=a[--e])return!1;return 0>=e}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.repeat\",function(a){return a?a:function(a){var b=$jscomp.checkStringArgs(this,null,\"repeat\");if(0>a||1342177279<a)throw new RangeError(\"Invalid count value\");a|=0;for(var d=\"\";a;)if(a&1&&(d+=b),a>>>=1)b+=b;return d}},\"es6\",\"es3\");$jscomp.polyfill(\"Array.prototype.find\",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},\"es6\",\"es3\");var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};\ngoog.isString=function(a){return\"string\"==typeof a};goog.isBoolean=function(a){return\"boolean\"==typeof a};goog.isNumber=function(a){return\"number\"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(\".\");c=c||goog.global;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};\ngoog.define=function(a,b){if(!COMPILED){var c=goog.global.CLOSURE_UNCOMPILED_DEFINES,d=goog.global.CLOSURE_DEFINES;c&&void 0===c.nodeType&&Object.prototype.hasOwnProperty.call(c,a)?b=c[a]:d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)&&(b=d[a])}goog.exportPath_(a,b);return b};goog.DEBUG=!0;goog.LOCALE=\"en\";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;\ngoog.provide=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.provide cannot be used within a module.\");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(\".\")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};\ngoog.getScriptNonce=function(a){if(a&&a!=goog.global)return goog.getScriptNonce_(a.document);null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document));return goog.cspNonce_};goog.NONCE_PATTERN_=/^[\\w+/_-]+[=]{0,2}$/;goog.cspNonce_=null;goog.getScriptNonce_=function(a){return(a=a.querySelector&&a.querySelector(\"script[nonce]\"))&&(a=a.nonce||a.getAttribute(\"nonce\"))&&goog.NONCE_PATTERN_.test(a)?a:\"\"};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error(\"Invalid module identifier\");if(!goog.isInGoogModuleLoader_())throw Error(\"Module \"+a+\" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.\");\nif(goog.moduleLoaderState_.moduleName)throw Error(\"goog.module may only be called once per module.\");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};\ngoog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:\"es6\",GOOG:\"goog\"};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};\ngoog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?\"function\"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1};\ngoog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error(\"goog.module.declareLegacyNamespace must be called from within a goog.module\");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error(\"goog.module must be called prior to goog.module.declareLegacyNamespace.\");goog.moduleLoaderState_.declareLegacyNamespace=!0};\ngoog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error(\"goog.declareModuleId may only be called from within an ES6 module\");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error(\"goog.declareModuleId may only be called once per module.\");if(a in goog.loadedModules_)throw Error('Module with namespace \"'+a+'\" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||\"function\"!=typeof b.getCurrentModulePath)throw Error('Module with namespace \"'+\na+'\" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.module.declareNamespace=goog.declareModuleId;goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||\"\",Error(\"Importing test-only code into non-debug environment\"+(a?\": \"+a:\".\"));};goog.forwardDeclare=function(a){};\nCOMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={\"goog.module\":!0});goog.getObjectByName=function(a,b){a=a.split(\".\");b=b||goog.global;for(var c=0;c<a.length;c++)if(b=b[a[c]],!goog.isDefAndNotNull(b))return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};\ngoog.addDependency=function(a,b,c,d){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(a,b,c,d)};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};\ngoog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(a)}finally{goog.moduleLoaderState_=b}}return null}};goog.requireType=function(a){return{}};goog.basePath=\"\";goog.nullFunction=function(){};\ngoog.abstractMethod=function(){throw Error(\"unimplemented abstract method\");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE=\"detect\";\ngoog.ASSUME_ES_MODULES_TRANSPILED=!1;goog.TRANSPILE_TO_LANGUAGE=\"\";goog.TRANSPILER=\"transpile.js\";goog.hasBadLetScoping=null;goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('\"use strict\";let x = 1; function f() { return typeof x; };f() == \"number\";')}catch(b){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping};goog.workaroundSafari10EvalBug=function(a){return\"(function(){\"+a+\"\\n;})();\\n\"};\ngoog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:\"\",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};if(goog.isFunction(a))var c=a.call(void 0,{});else if(goog.isString(a))goog.useSafari10Workaround()&&(a=goog.workaroundSafari10EvalBug(a)),c=goog.loadModuleFromSource_.call(void 0,a);else throw Error(\"Invalid module definition\");var d=goog.moduleLoaderState_.moduleName;if(goog.isString(d)&&d)goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(d,\nc):goog.SEAL_MODULE_EXPORTS&&Object.seal&&\"object\"==typeof c&&null!=c&&Object.seal(c),goog.loadedModules_[d]={exports:c,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName};else throw Error('Invalid module name \"'+d+'\"');}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a){eval(a);return{}};goog.normalizePath_=function(a){a=a.split(\"/\");for(var b=0;b<a.length;)\".\"==a[b]?a.splice(b,1):b&&\"..\"==a[b]&&a[b-1]&&\"..\"!=a[b-1]?a.splice(--b,2):b++;return a.join(\"/\")};\ngoog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open(\"get\",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};\ngoog.transpile_=function(a,b,c){var d=goog.global.$jscomp;d||(goog.global.$jscomp=d={});var e=d.transpile;if(!e){var f=goog.basePath+goog.TRANSPILER,g=goog.loadFileSync_(f);if(g){(function(){eval(g+\"\\n//# sourceURL=\"+f)}).call(goog.global);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the \"transpile\" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=\ngoog.global.$gwtExport.$jscomp.transpile;d=goog.global.$jscomp;e=d.transpile}}e||(e=d.transpile=function(a,b){goog.logToConsole_(b+\" requires transpilation but no transpiler was found.\");return a});return e(a,b,c)};\ngoog.typeOf=function(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return\"array\"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&\"function\"==typeof a.getFullYear};goog.isFunction=function(a){return\"function\"==goog.typeOf(a)};\ngoog.isObject=function(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){null!==a&&\"removeAttribute\"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_=\"closure_uid_\"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;\ngoog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(\"function\"===typeof a.clone)return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};\ngoog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};\ngoog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};\ngoog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,\"JavaScript\");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_){try{goog.global.eval(\"var _evalTest_ = 1;\")}catch(d){}if(\"undefined\"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(d){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement(\"SCRIPT\");c.type=\"text/javascript\";c.defer=\n!1;c.appendChild(b.createTextNode(a));b.head.appendChild(c);b.head.removeChild(c)}}else throw Error(\"goog.globalEval not available\");};goog.evalWorksForGlobals_=null;\ngoog.getCssName=function(a,b){if(\".\"==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with \".\". You passed: '+a);var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split(\"-\");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join(\"-\")};d=goog.cssNameMapping_?\"BY_WHOLE\"==goog.cssNameMappingStyle_?c:d:function(a){return a};a=b?a+\"-\"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(a):a};\ngoog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b){b&&(a=a.replace(/\\{\\$([^}]+)}/g,function(a,d){return null!=b&&d in b?b[d]:a}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};\ngoog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};\ngoog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!d)throw Error(\"arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C\");if(\"undefined\"!==typeof d.superClass_){for(var e=Array(arguments.length-1),f=1;f<arguments.length;f++)e[f-1]=arguments[f];return d.superClass_.constructor.apply(a,e)}if(\"string\"!=typeof b&&\"symbol\"!=typeof b)throw Error(\"method names provided to goog.base must be a string or a symbol\");\ne=Array(arguments.length-2);for(f=2;f<arguments.length;f++)e[f-2]=arguments[f];f=!1;for(var g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error(\"goog.base called from a method of one name to a method of a different name\");};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.scope is not supported within a module.\");a.call(goog.global)};\nCOMPILED||(goog.global.COMPILED=COMPILED);goog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error(\"cannot instantiate an interface (no constructor defined).\");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};\ngoog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;goog.defineClass.createSealingConstructor_=function(a,b){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return a;var c=!goog.defineClass.isUnsealable_(b),d=function(){var b=a.apply(this,arguments)||this;b[goog.UID_PROPERTY_]=b[goog.UID_PROPERTY_];this.constructor===d&&c&&Object.seal instanceof Function&&Object.seal(b);return b};return d};goog.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};\ngoog.defineClass.OBJECT_PROTOTYPE_FIELDS_=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");goog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};\ngoog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_=\"goog_defineClass_legacy_unsealable\";\n!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&\"write\"in a},goog.isDocumentLoading_=function(){var a=goog.global.document;return a.attachEvent?\"complete\"!=a.readyState:\"loading\"==a.readyState},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;\na=b?[b]:a.getElementsByTagName(\"SCRIPT\");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf(\"?\");d=-1==d?c.length:d;if(\"base.js\"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null;this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,b){e?d[a]=!0:b()?(c=a,d[a]=!1):e=d[a]=!0}function b(a){try{return!!eval(a)}catch(h){return!1}}\nvar c=\"es3\",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:\"\";a(\"es5\",function(){return b(\"[1,].length==1\")});a(\"es6\",function(){return f.match(/Edge\\/(\\d+)(\\.\\d)*/i)?!1:b('(()=>{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});\na(\"es6-impl\",function(){return!0});a(\"es7\",function(){return b(\"2 ** 2 == 4\")});a(\"es8\",function(){return b(\"async () => 1, true\")});a(\"es9\",function(){return b(\"({...rest} = {}), true\")});a(\"es_next\",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if(\"always\"==goog.TRANSPILE)return!0;if(\"never\"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_();this.requiresTranspilation_=c.map;this.transpilationTarget_=\nthis.transpilationTarget_||c.target}if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a]?!0:!goog.inHtmlDocument_()||\"es6\"!=b||\"noModule\"in goog.global.document.createElement(\"script\")?!1:!0;throw Error(\"Unknown language mode: \"+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(a){return a.replace(/<\\/(SCRIPT)/ig,\"\\\\x3c/$1\")},goog.DebugLoader_=function(){this.dependencies_=\n{};this.idToPath_={};this.written_={};this.loadingDeps_=[];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory(goog.transpiler_);this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){b=[];for(var e=0;e<a.length;e++){var f=this.getPathFromDeps_(a[e]);if(!f)throw Error(\"Unregonized namespace: \"+a[e]);b.push(this.dependencies_[f])}f=goog.require;var g=0;\nfor(e=0;e<a.length;e++)f(a[e]),b[e].onLoad(function(){++g==a.length&&c()})}else c()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+\"deps.js\"),\"deps.js\",[],[],{},!1));this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(a,b){(a=this.getPathFromDeps_(a))&&(b||this.areDepsLoaded_(this.dependencies_[a].requires))&&(b=this.deferredCallbacks_[a])&&(delete this.deferredCallbacks_[a],b())},goog.DebugLoader_.prototype.setDependencyFactory=\nfunction(a){this.factory_=a},goog.DebugLoader_.prototype.load_=function(a){if(this.getPathFromDeps_(a)){var b=this,c=[],d=function(a){var e=b.getPathFromDeps_(a);if(!e)throw Error(\"Bad dependency path or symbol: \"+a);if(!b.written_[e]){b.written_[e]=!0;a=b.dependencies_[e];for(e=0;e<a.requires.length;e++)goog.isProvided_(a.requires[e])||d(a.requires[e]);c.push(a)}};d(a);a=!!this.depsToLoad_.length;this.depsToLoad_=this.depsToLoad_.concat(c);this.paused_||a||this.loadDeps_()}else throw a=\"goog.require could not find: \"+\na,goog.logToConsole_(a),Error(a);},goog.DebugLoader_.prototype.loadDeps_=function(){for(var a=this,b=this.paused_;this.depsToLoad_.length&&!b;)(function(){var c=!1,d=a.depsToLoad_.shift(),e=!1;a.loading_(d);var f={pause:function(){if(c)throw Error(\"Cannot call pause after the call to load.\");b=!0},resume:function(){c?a.resume_():b=!1},loaded:function(){if(e)throw Error(\"Double call to loaded.\");e=!0;a.loaded_(d)},pending:function(){for(var b=[],c=0;c<a.loadingDeps_.length;c++)b.push(a.loadingDeps_[c]);\nreturn b},setModuleState:function(a){goog.moduleLoaderState_={type:a,moduleName:\"\",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(a,b,c){c&&(goog.loadedModules_[c]={exports:b,type:goog.ModuleType.ES6,moduleId:c||\"\"})},registerGoogModuleExports:function(a,b){goog.loadedModules_[a]={exports:b,type:goog.ModuleType.GOOG,moduleId:a}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(b){if(c)throw Error(\"Cannot register with defer after the call to load.\");a.defer_(d,\nb)},areDepsLoaded:function(){return a.areDepsLoaded_(d.requires)}};try{d.load(f)}finally{c=!0}})();b&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(a){this.loadingDeps_.push(a)},goog.DebugLoader_.prototype.loaded_=function(a){for(var b=0;b<this.loadingDeps_.length;b++)if(this.loadingDeps_[b]==a){this.loadingDeps_.splice(b,1);\nbreak}for(b=0;b<this.deferredQueue_.length;b++)if(this.deferredQueue_[b]==a.path){this.deferredQueue_.splice(b,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);a.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(a){for(var b=0;b<a.length;b++){var c=this.getPathFromDeps_(a[b]);if(!c||!(c in this.deferredCallbacks_||goog.isProvided_(a[b])))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=\nfunction(a){return a in this.idToPath_?this.idToPath_[a]:a in this.dependencies_?a:null},goog.DebugLoader_.prototype.defer_=function(a,b){this.deferredCallbacks_[a.path]=b;this.deferredQueue_.push(a.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(a,\nb,c){},goog.LoadController.prototype.setModuleState=function(a){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(a){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(a,b,c,d,e){this.path=a;this.relativePath=b;this.provides=c;this.requires=d;this.loadFlags=e;this.loaded_=!1;this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var a=this.path,b=a.indexOf(\"://\");0<=b&&(a=a.substring(b+3),b=\na.indexOf(\"/\"),0<=b&&(a=a.substring(b+1)));return a},goog.Dependency.prototype.onLoad=function(a){this.loaded_?a():this.loadCallbacks_.push(a)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var a=this.loadCallbacks_;this.loadCallbacks_=[];for(var b=0;b<a.length;b++)a[b]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(a){var b=Math.random().toString(32);goog.Dependency.callbackMap_[b]=a;return b},goog.Dependency.unregisterCallback_=\nfunction(a){delete goog.Dependency.callbackMap_[a]},goog.Dependency.callback_=function(a,b){if(a in goog.Dependency.callbackMap_){for(var c=goog.Dependency.callbackMap_[a],d=[],e=1;e<arguments.length;e++)d.push(arguments[e]);c.apply(void 0,d)}else throw Error(\"Callback key \"+a+\" does not exist (was base.js loaded more than once?).\");},goog.Dependency.prototype.load=function(a){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var b=\ngoog.global.document;if(\"complete\"==b.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\\bdeps.js$/.test(this.path)){a.loaded();return}throw Error('Cannot write \"'+this.path+'\" after document load');}if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var c=goog.Dependency.registerCallback_(function(b){goog.DebugLoader_.IS_OLD_IE_&&\"complete\"!=b.readyState||(goog.Dependency.unregisterCallback_(c),a.loaded())}),d=!goog.DebugLoader_.IS_OLD_IE_&&goog.getScriptNonce()?\n' nonce=\"'+goog.getScriptNonce()+'\"':\"\";b.write('<script src=\"'+this.path+'\" '+(goog.DebugLoader_.IS_OLD_IE_?\"onreadystatechange\":\"onload\")+\"=\\\"goog.Dependency.callback_('\"+c+'\\', this)\" type=\"text/javascript\" '+(goog.Dependency.defer_?\"defer\":\"\")+d+\">\\x3c/script>\")}else{var e=b.createElement(\"script\");e.defer=goog.Dependency.defer_;e.async=!1;e.type=\"text/javascript\";(d=goog.getScriptNonce())&&e.setAttribute(\"nonce\",d);goog.DebugLoader_.IS_OLD_IE_?(a.pause(),e.onreadystatechange=function(){if(\"loaded\"==\ne.readyState||\"complete\"==e.readyState)a.loaded(),a.resume()}):e.onload=function(){e.onload=null;a.loaded()};e.src=this.path;b.head.appendChild(e)}}else goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"),\"deps.js\"==this.relativePath?(goog.logToConsole_(\"Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true.\"),a.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,\ngoog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(a,b){b?d.write('<script type=\"module\" crossorigin>'+b+\"\\x3c/script>\"):d.write('<script type=\"module\" crossorigin src=\"'+a+'\">\\x3c/script>')}function c(a,b){var c=d.createElement(\"script\");c.defer=!0;c.async=!1;c.type=\"module\";c.setAttribute(\"crossorigin\",!0);var e=goog.getScriptNonce();e&&c.setAttribute(\"nonce\",e);b?c.textContent=b:c.src=a;d.head.appendChild(c)}if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?\na.loaded():a.pause();else if(goog.inHtmlDocument_()){var d=goog.global.document,e=this;if(goog.isDocumentLoading_()){var f=b;goog.Dependency.defer_=!0}else f=c;var g=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(g);a.setModuleState(goog.ModuleType.ES6)});f(void 0,'goog.Dependency.callback_(\"'+g+'\")');f(this.path,void 0);var h=goog.Dependency.registerCallback_(function(b){goog.Dependency.unregisterCallback_(h);a.registerEs6ModuleExports(e.path,b,goog.moduleLoaderState_.moduleName)});\nf(void 0,'import * as m from \"'+this.path+'\"; goog.Dependency.callback_(\"'+h+'\", m)');var k=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(k);a.clearModuleState();a.loaded()});f(void 0,'goog.Dependency.callback_(\"'+k+'\")')}else goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"),a.pause()},goog.TransformedDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e);this.contents_=null;this.lazyFetch_=!goog.inHtmlDocument_()||!(\"noModule\"in\ngoog.global.document.createElement(\"script\"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(a){function b(){e.contents_=goog.loadFileSync_(e.path);e.contents_&&(e.contents_=e.transform(e.contents_),e.contents_&&(e.contents_+=\"\\n//# sourceURL=\"+e.path))}function c(){e.lazyFetch_&&b();if(e.contents_){f&&a.setModuleState(goog.ModuleType.ES6);try{var c=e.contents_;e.contents_=null;goog.globalEval(c);if(f)var d=goog.moduleLoaderState_.moduleName}finally{f&&\na.clearModuleState()}f&&goog.global.$jscomp.require.ensure([e.getPathName()],function(){a.registerEs6ModuleExports(e.path,goog.global.$jscomp.require(e.getPathName()),d)});a.loaded()}}function d(){var a=goog.global.document,b=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(b);c()});a.write('<script type=\"text/javascript\">'+goog.protectScriptTag_('goog.Dependency.callback_(\"'+b+'\");')+\"\\x3c/script>\")}var e=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)b(),this.contents_&&\ngoog.global.CLOSURE_IMPORT_SCRIPT(\"\",this.contents_)?(this.contents_=null,a.loaded()):a.pause();else{var f=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||b();var g=1<a.pending().length,h=g&&goog.DebugLoader_.IS_OLD_IE_;g=goog.Dependency.defer_&&(g||goog.isDocumentLoading_());if(h||g)a.defer(function(){c()});else{var k=goog.global.document;h=goog.inHtmlDocument_()&&\"ActiveXObject\"in goog.global;if(f&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!h){goog.Dependency.defer_=!0;a.pause();\nvar l=k.onreadystatechange;k.onreadystatechange=function(){\"interactive\"==k.readyState&&(k.onreadystatechange=l,c(),a.resume());goog.isFunction(l)&&l.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?d():c()}}},goog.TransformedDependency.prototype.transform=function(a){},goog.TranspiledDependency=function(a,b,c,d,e,f){goog.TransformedDependency.call(this,a,b,c,d,e);this.transpiler=f},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),\ngoog.TranspiledDependency.prototype.transform=function(a){return this.transpiler.transpile(a,this.getPathName())},goog.PreTranspiledEs6ModuleDependency=function(a,b,c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(a){return a},goog.GoogModuleDependency=function(a,b,c,d,e,f,g){goog.TransformedDependency.call(this,a,b,c,d,e);this.needsTranspile_=f;\nthis.transpiler_=g},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=function(a){this.needsTranspile_&&(a=this.transpiler_.transpile(a,this.getPathName()));return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?\"goog.loadModule(\"+goog.global.JSON.stringify(a+\"\\n//# sourceURL=\"+this.path+\"\\n\")+\");\":'goog.loadModule(function(exports) {\"use strict\";'+a+\"\\n;return exports});\\n//# sourceURL=\"+this.path+\"\\n\"},goog.DebugLoader_.IS_OLD_IE_=\n!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(a,b,c,d){b=b||[];a=a.replace(/\\\\/g,\"/\");var e=goog.normalizePath_(goog.basePath+a);d&&\"boolean\"!==typeof d||(d=d?{module:goog.ModuleType.GOOG}:{});c=this.factory_.createDependency(e,a,b,c,d,goog.transpiler_.needsTranspile(d.lang||\"es3\",d.module));this.dependencies_[e]=c;for(c=0;c<b.length;c++)this.idToPath_[b[c]]=e;this.idToPath_[a]=e},goog.DependencyFactory=function(a){this.transpiler=\na},goog.DependencyFactory.prototype.createDependency=function(a,b,c,d,e,f){return e.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(a,b,c,d,e,f,this.transpiler):f?new goog.TranspiledDependency(a,b,c,d,e,this.transpiler):e.module==goog.ModuleType.ES6?\"never\"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(a,b,c,d,e):new goog.Es6ModuleDependency(a,b,c,d,e):new goog.Dependency(a,b,c,d,e)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=\nfunction(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(a){goog.debugLoader_.setDependencyFactory(a)},goog.global.CLOSURE_NO_DEPS||goog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(a,b){goog.debugLoader_.bootstrap(a,b)});var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31};jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5};\njspb.BinaryConstants.FieldTypeToWireType=function(a){var b=jspb.BinaryConstants.FieldType,c=jspb.BinaryConstants.WireType;switch(a){case b.INT32:case b.INT64:case b.UINT32:case b.UINT64:case b.SINT32:case b.SINT64:case b.BOOL:case b.ENUM:case b.VHASH64:return c.VARINT;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:case b.FHASH64:return c.FIXED64;case b.STRING:case b.MESSAGE:case b.BYTES:return c.DELIMITED;case b.FLOAT:case b.FIXED32:case b.SFIXED32:return c.FIXED32;default:return c.INVALID}};\njspb.BinaryConstants.INVALID_FIELD_NUMBER=-1;jspb.BinaryConstants.FLOAT32_EPS=1.401298464324817E-45;jspb.BinaryConstants.FLOAT32_MIN=1.1754943508222875E-38;jspb.BinaryConstants.FLOAT32_MAX=3.4028234663852886E38;jspb.BinaryConstants.FLOAT64_EPS=4.9E-324;jspb.BinaryConstants.FLOAT64_MIN=2.2250738585072014E-308;jspb.BinaryConstants.FLOAT64_MAX=1.7976931348623157E308;jspb.BinaryConstants.TWO_TO_20=1048576;jspb.BinaryConstants.TWO_TO_23=8388608;jspb.BinaryConstants.TWO_TO_31=2147483648;\njspb.BinaryConstants.TWO_TO_32=4294967296;jspb.BinaryConstants.TWO_TO_52=4503599627370496;jspb.BinaryConstants.TWO_TO_63=0x7fffffffffffffff;jspb.BinaryConstants.TWO_TO_64=1.8446744073709552E19;jspb.BinaryConstants.ZERO_HASH=\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name=\"CustomError\";goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){goog.debug.Error.call(this,goog.asserts.subs_(a,b));this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name=\"AssertionError\";goog.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER;\ngoog.asserts.subs_=function(a,b){a=a.split(\"%s\");for(var c=\"\",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:\"%s\");return c+a[d]};goog.asserts.doAssertFailure_=function(a,b,c,d){var e=\"Assertion failed\";if(c){e+=\": \"+c;var f=d}else a&&(e+=\": \"+a,f=b);a=new goog.asserts.AssertionError(\"\"+e,f||[]);goog.asserts.errorHandler_(a)};goog.asserts.setErrorHandler=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=a)};\ngoog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_(\"\",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError(\"Failure\"+(a?\": \"+a:\"\"),Array.prototype.slice.call(arguments,1)))};\ngoog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_(\"Expected number but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_(\"Expected string but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_(\"Expected function but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_(\"Expected object but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_(\"Expected array but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_(\"Expected boolean but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_(\"Expected Element but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_(\"Expected instanceof %s but got %s.\",[goog.asserts.getType_(b),goog.asserts.getType_(a)],c,Array.prototype.slice.call(arguments,3));return a};goog.asserts.assertFinite=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||\"number\"==typeof a&&isFinite(a)||goog.asserts.doAssertFailure_(\"Expected %s to be a finite number but it is not.\",[a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+\" should not be enumerable in Object.prototype.\")};goog.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||\"unknown type name\":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?\"null\":typeof a};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.ASSUME_NATIVE_FUNCTIONS=!1;goog.array.peek=function(a){return a[a.length-1]};goog.array.last=goog.array.peek;\ngoog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(\"\"):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(\"\"):a;for(--d;0<=d;--d)d in e&&b.call(c,e[d],d,a)};\ngoog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(\"\"):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};\ngoog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(\"\"):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};\ngoog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,b,c,d){goog.asserts.assert(null!=a.length);goog.asserts.assert(null!=b);d&&(b=goog.bind(b,d));return Array.prototype.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};\ngoog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};\ngoog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};\ngoog.array.findIndexRight=function(a,b,c){var d=a.length,e=goog.isString(a)?a.split(\"\"):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};\ngoog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};\ngoog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};\ngoog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){var e=a.length||0,f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}};\ngoog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,goog.array.slice(arguments,1))};goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};\ngoog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?\"o\"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};\ngoog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1;var l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){a.sort(b||goog.array.defaultCompare)};goog.array.stableSort=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(c,function(a,b){return e(a.value,b.value)||a.index-b.index});for(d=0;d<a.length;d++)a[d]=c[d].value};\ngoog.array.sortByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(b(a),b(c))})};goog.array.sortObjectsByKey=function(a,b,c){goog.array.sortByKey(a,function(a){return a[b]},c)};goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};\ngoog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};\ngoog.array.inverseDefaultCompare=function(a,b){return-goog.array.defaultCompare(a,b)};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};\ngoog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(d[g]||(d[g]=[])).push(f)}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};\ngoog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];if(goog.isArray(d))for(var e=0;e<d.length;e+=8192){var f=goog.array.slice(d,e,e+8192);f=goog.array.flatten.apply(null,f);for(var g=0;g<f.length;g++)b.push(f[g])}else b.push(d)}return b};\ngoog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?Array.prototype.unshift.apply(a,a.splice(-b,b)):0>b&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=Array.prototype.splice.call(a,b,1);Array.prototype.splice.call(a,c,0,b[0])};\ngoog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;d<arguments.length;d++)arguments[d].length<c&&(c=arguments[d].length);for(d=0;d<c;d++){for(var e=[],f=0;f<arguments.length;f++)e.push(arguments[f][d]);b.push(e)}return b};goog.array.shuffle=function(a,b){b=b||Math.random;for(var c=a.length-1;0<c;c--){var d=Math.floor(b()*(c+1)),e=a[c];a[c]=a[d];a[d]=e}};goog.array.copyByIndex=function(a,b){var c=[];goog.array.forEach(b,function(b){c.push(a[b])});return c};\ngoog.array.concatMap=function(a,b,c){return goog.array.concat.apply([],goog.array.map(a,b,c))};goog.crypt={};goog.crypt.stringToByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);255<e&&(b[c++]=e&255,e>>=8);b[c++]=e}return b};goog.crypt.byteArrayToString=function(a){if(8192>=a.length)return String.fromCharCode.apply(null,a);for(var b=\"\",c=0;c<a.length;c+=8192){var d=goog.array.slice(a,c,c+8192);b+=String.fromCharCode.apply(null,d)}return b};\ngoog.crypt.byteArrayToHex=function(a,b){return goog.array.map(a,function(a){a=a.toString(16);return 1<a.length?a:\"0\"+a}).join(b||\"\")};goog.crypt.hexToByteArray=function(a){goog.asserts.assert(0==a.length%2,\"Key string length must be multiple of 2\");for(var b=[],c=0;c<a.length;c+=2)b.push(parseInt(a.substring(c,c+2),16));return b};\ngoog.crypt.stringToUtf8ByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);128>e?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1<a.length&&56320==(a.charCodeAt(d+1)&64512)?(e=65536+((e&1023)<<10)+(a.charCodeAt(++d)&1023),b[c++]=e>>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};\ngoog.crypt.utf8ByteArrayToString=function(a){for(var b=[],c=0,d=0;c<a.length;){var e=a[c++];if(128>e)b[d++]=String.fromCharCode(e);else if(191<e&&224>e){var f=a[c++];b[d++]=String.fromCharCode((e&31)<<6|f&63)}else if(239<e&&365>e){f=a[c++];var g=a[c++],h=a[c++];e=((e&7)<<18|(f&63)<<12|(g&63)<<6|h&63)-65536;b[d++]=String.fromCharCode(55296+(e>>10));b[d++]=String.fromCharCode(56320+(e&1023))}else f=a[c++],g=a[c++],b[d++]=String.fromCharCode((e&15)<<12|(f&63)<<6|g&63)}return b.join(\"\")};\ngoog.crypt.xorByteArray=function(a,b){goog.asserts.assert(a.length==b.length,\"XOR array lengths must match\");for(var c=[],d=0;d<a.length;d++)c.push(a[d]^b[d]);return c};goog.string={};goog.string.internal={};goog.string.internal.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.internal.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.internal.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.internal.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};\ngoog.string.internal.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.internal.isEmptyOrWhitespace=function(a){return/^[\\s\\xa0]*$/.test(a)};goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]};goog.string.internal.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a<b?-1:a==b?0:1};\ngoog.string.internal.newLineToBr=function(a,b){return a.replace(/(\\r\\n|\\r|\\n)/g,b?\"<br />\":\"<br>\")};\ngoog.string.internal.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.internal.AMP_RE_,\"&amp;\").replace(goog.string.internal.LT_RE_,\"&lt;\").replace(goog.string.internal.GT_RE_,\"&gt;\").replace(goog.string.internal.QUOT_RE_,\"&quot;\").replace(goog.string.internal.SINGLE_QUOTE_RE_,\"&#39;\").replace(goog.string.internal.NULL_RE_,\"&#0;\");else{if(!goog.string.internal.ALL_RE_.test(a))return a;-1!=a.indexOf(\"&\")&&(a=a.replace(goog.string.internal.AMP_RE_,\"&amp;\"));-1!=a.indexOf(\"<\")&&(a=a.replace(goog.string.internal.LT_RE_,\n\"&lt;\"));-1!=a.indexOf(\">\")&&(a=a.replace(goog.string.internal.GT_RE_,\"&gt;\"));-1!=a.indexOf('\"')&&(a=a.replace(goog.string.internal.QUOT_RE_,\"&quot;\"));-1!=a.indexOf(\"'\")&&(a=a.replace(goog.string.internal.SINGLE_QUOTE_RE_,\"&#39;\"));-1!=a.indexOf(\"\\x00\")&&(a=a.replace(goog.string.internal.NULL_RE_,\"&#0;\"))}return a};goog.string.internal.AMP_RE_=/&/g;goog.string.internal.LT_RE_=/</g;goog.string.internal.GT_RE_=/>/g;goog.string.internal.QUOT_RE_=/\"/g;goog.string.internal.SINGLE_QUOTE_RE_=/'/g;\ngoog.string.internal.NULL_RE_=/\\x00/g;goog.string.internal.ALL_RE_=/[\\x00&<>\"']/;goog.string.internal.whitespaceEscape=function(a,b){return goog.string.internal.newLineToBr(a.replace(/  /g,\" &#160;\"),b)};goog.string.internal.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.internal.caseInsensitiveContains=function(a,b){return goog.string.internal.contains(a.toLowerCase(),b.toLowerCase())};\ngoog.string.internal.compareVersions=function(a,b){var c=0;a=goog.string.internal.trim(String(a)).split(\".\");b=goog.string.internal.trim(String(b)).split(\".\");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||\"\",g=b[e]||\"\";do{f=/(\\d*)(\\D*)(.*)/.exec(f)||[\"\",\"\",\"\",\"\"];g=/(\\d*)(\\D*)(.*)/.exec(g)||[\"\",\"\",\"\",\"\"];if(0==f[0].length&&0==g[0].length)break;c=0==f[1].length?0:parseInt(f[1],10);var h=0==g[1].length?0:parseInt(g[1],10);c=goog.string.internal.compareElements_(c,h)||goog.string.internal.compareElements_(0==\nf[2].length,0==g[2].length)||goog.string.internal.compareElements_(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c};goog.string.internal.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:\"\\u00a0\"};goog.string.startsWith=goog.string.internal.startsWith;goog.string.endsWith=goog.string.internal.endsWith;goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith;goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith;goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals;\ngoog.string.subs=function(a,b){for(var c=a.split(\"%s\"),d=\"\",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join(\"%s\")};goog.string.collapseWhitespace=function(a){return a.replace(/[\\s\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")};goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace;goog.string.isEmptyString=function(a){return 0==a.length};goog.string.isEmpty=goog.string.isEmptyOrWhitespace;goog.string.isEmptyOrWhitespaceSafe=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};\ngoog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe;goog.string.isBreakingWhitespace=function(a){return!/[^\\t\\n\\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return\" \"==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&\" \"<=a&&\"~\">=a||\"\\u0080\"<=a&&\"\\ufffd\">=a};\ngoog.string.stripNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)+/g,\" \")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)/g,\"\\n\")};goog.string.normalizeWhitespace=function(a){return a.replace(/\\xa0|\\s/g,\" \")};goog.string.normalizeSpaces=function(a){return a.replace(/\\xa0|[ \\t]+/g,\" \")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\\t\\r\\n ]+/g,\" \").replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g,\"\")};goog.string.trim=goog.string.internal.trim;\ngoog.string.trimLeft=function(a){return a.replace(/^[\\s\\xa0]+/,\"\")};goog.string.trimRight=function(a){return a.replace(/[\\s\\xa0]+$/,\"\")};goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare;\ngoog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g<f;g++){c=d[g];var h=e[g];if(c!=h)return a=parseInt(c,10),!isNaN(a)&&(b=parseInt(h,10),!isNaN(b)&&a-b)?a-b:c<h?-1:1}return d.length!=e.length?d.length-e.length:a<b?-1:1};goog.string.intAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\D+/g)};\ngoog.string.floatAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\.\\d+|\\D+/g)};goog.string.numerateCompare=goog.string.floatAwareCompare;goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\\+/g,\" \"))};goog.string.newLineToBr=goog.string.internal.newLineToBr;\ngoog.string.htmlEscape=function(a,b){a=goog.string.internal.htmlEscape(a,b);goog.string.DETECT_DOUBLE_ESCAPING&&(a=a.replace(goog.string.E_RE_,\"&#101;\"));return a};goog.string.E_RE_=/e/g;goog.string.unescapeEntities=function(a){return goog.string.contains(a,\"&\")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&\"document\"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};\ngoog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,\"&\")?goog.string.unescapeEntitiesUsingDom_(a,b):a};\ngoog.string.unescapeEntitiesUsingDom_=function(a,b){var c={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"'};var d=b?b.createElement(\"div\"):goog.global.document.createElement(\"div\");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;\"#\"==b.charAt(0)&&(b=Number(\"0\"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(d.innerHTML=a+\" \",e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};\ngoog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case \"amp\":return\"&\";case \"lt\":return\"<\";case \"gt\":return\">\";case \"quot\":return'\"';default:return\"#\"!=c.charAt(0)||(c=Number(\"0\"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/  /g,\" &#160;\"),b)};\ngoog.string.preserveSpaces=function(a){return a.replace(/(^|[\\n ]) /g,\"$1\"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+\"...\");c&&(a=goog.string.htmlEscape(a));return a};\ngoog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+\"...\"+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+\"...\"+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={\"\\x00\":\"\\\\0\",\"\\b\":\"\\\\b\",\"\\f\":\"\\\\f\",\"\\n\":\"\\\\n\",\"\\r\":\"\\\\r\",\"\\t\":\"\\\\t\",\"\\x0B\":\"\\\\x0B\",'\"':'\\\\\"',\"\\\\\":\"\\\\\\\\\",\"<\":\"<\"};goog.string.jsEscapeCache_={\"'\":\"\\\\'\"};\ngoog.string.quote=function(a){a=String(a);for(var b=['\"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('\"');return b.join(\"\")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join(\"\")};\ngoog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a.charCodeAt(0);if(31<b&&127>b)var c=a;else{if(256>b){if(c=\"\\\\x\",16>b||256<b)c+=\"0\"}else c=\"\\\\u\",4096>b&&(c+=\"0\");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=goog.string.internal.contains;goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains;\ngoog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){return a.replace(b,\"\")};goog.string.removeAll=function(a,b){b=new RegExp(goog.string.regExpEscape(b),\"g\");return a.replace(b,\"\")};goog.string.replaceAll=function(a,b,c){b=new RegExp(goog.string.regExpEscape(b),\"g\");return a.replace(b,c.replace(/\\$/g,\"$$$$\"))};\ngoog.string.regExpEscape=function(a){return String(a).replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\").replace(/\\x08/g,\"\\\\x08\")};goog.string.repeat=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(\".\");-1==c&&(c=a.length);return goog.string.repeat(\"0\",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?\"\":String(a)};\ngoog.string.buildString=function(a){return Array.prototype.join.call(arguments,\"\")};goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};goog.string.compareVersions=goog.string.internal.compareVersions;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c)>>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;\ngoog.string.createUniqueString=function(){return\"goog_\"+goog.string.uniqueStringCounter_++};goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\\-([a-z])/g,function(a,c){return c.toUpperCase()})};\ngoog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,\"-$1\").toLowerCase()};goog.string.toTitleCase=function(a,b){b=goog.isString(b)?goog.string.regExpEscape(b):\"\\\\s\";return a.replace(new RegExp(\"(^\"+(b?\"|[\"+b+\"]+\":\"\")+\")([a-z])\",\"g\"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};\ngoog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.string.lastComponent=function(a,b){if(b)\"string\"==typeof b&&(b=[b]);else return a;for(var c=-1,d=0;d<b.length;d++)if(\"\"!=b[d]){var e=a.lastIndexOf(b[d]);e>c&&(c=e)}return-1==c?a:a.slice(c+1)};\ngoog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;e<b.length+1;e++)c[e]=e;for(e=0;e<a.length;e++){d[0]=e+1;for(var f=0;f<b.length;f++)d[f+1]=Math.min(d[f]+1,c[f+1]+1,c[f]+Number(a[e]!=b[f]));for(f=0;f<c.length;f++)c[f]=d[f]}return d[b.length]};goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:\"\"};goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};\ngoog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(b,a)};\ngoog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=/(\\w[\\w ]+)\\/([^\\s]+)\\s*(?:\\((.*?)\\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.labs.userAgent.platform={};goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent(\"Android\")};goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPod\")};goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPhone\")&&!goog.labs.userAgent.util.matchUserAgent(\"iPod\")&&!goog.labs.userAgent.util.matchUserAgent(\"iPad\")};goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPad\")};\ngoog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()};goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent(\"Macintosh\")};goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent(\"Linux\")};goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent(\"Windows\")};\ngoog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent(\"CrOS\")};goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent(\"CrKey\")};goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase(\"KaiOS\")};goog.labs.userAgent.platform.isGo2Phone=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase(\"GAFP\")};\ngoog.labs.userAgent.platform.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent(),b=\"\";goog.labs.userAgent.platform.isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:\"0.0\"):goog.labs.userAgent.platform.isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\\s+OS\\s+(\\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,\".\")):goog.labs.userAgent.platform.isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,\".\"):\"10\"):goog.labs.userAgent.platform.isAndroid()?(b=/Android\\s+([^\\);]+)(\\)|;)/,\nb=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isChromeOS()&&(b=/(?:CrOS\\s+(?:i686|x86_64)\\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||\"\"};goog.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),a)};goog.object={};goog.object.is=function(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};\ngoog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};\ngoog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};goog.object.getValueByKeys=function(a,b){var c=goog.isArrayLike(b),d=c?b:arguments;for(c=c?0:1;c<d.length;c++){if(null==a)return;a=a[d[c]]}return a};goog.object.containsKey=function(a,b){return null!==a&&b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};\ngoog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key \"'+b+'\"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return null!==a&&b in a?a[b]:c};\ngoog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};goog.object.setWithReturnValueIfNotSet=function(a,b,c){if(b in a)return a[b];c=c();return a[b]=c};goog.object.equals=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(c in b)if(!(c in a))return!1;return!0};goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};\ngoog.object.unsafeClone=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(goog.isFunction(a.clone))return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\ngoog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};\ngoog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error(\"Uneven number of arguments\");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};\ngoog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};\ngoog.object.getAllPropertyNames=function(a,b,c){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(a);for(var d={};a&&(a!==Object.prototype||b)&&(a!==Function.prototype||c);){for(var e=Object.getOwnPropertyNames(a),f=0;f<e.length;f++)d[e[f]]=!0;a=Object.getPrototypeOf(a)}return goog.object.getKeys(d)};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Opera\")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Trident\")||goog.labs.userAgent.util.matchUserAgent(\"MSIE\")};goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Edge\")};\ngoog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Firefox\")||goog.labs.userAgent.util.matchUserAgent(\"FxiOS\")};\ngoog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Safari\")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent(\"Android\"))};goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Coast\")};\ngoog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent(\"iPad\")||goog.labs.userAgent.util.matchUserAgent(\"iPhone\"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent(\"AppleWebKit\")};\ngoog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent(\"Chrome\")||goog.labs.userAgent.util.matchUserAgent(\"CriOS\"))&&!goog.labs.userAgent.browser.matchEdge_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Android\")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};\ngoog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;\ngoog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent(\"Silk\")};\ngoog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||\"\"}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);b=goog.labs.userAgent.util.extractVersionTuples(b);var c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a([\"Version\",\"Opera\"]):goog.labs.userAgent.browser.isEdge()?a([\"Edge\"]):\ngoog.labs.userAgent.browser.isChrome()?a([\"Chrome\",\"CriOS\"]):(b=b[2])&&b[1]||\"\"};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};\ngoog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\\d\\.]*)/.exec(a);if(b&&b[1])return b[1];b=\"\";var c=/MSIE +([\\d\\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\\/(\\d.\\d)/.exec(a),\"7.0\"==c[1])if(a&&a[1])switch(a[1]){case \"4.0\":b=\"8.0\";break;case \"5.0\":b=\"9.0\";break;case \"6.0\":b=\"10.0\";break;case \"7.0\":b=\"11.0\"}else b=\"7.0\";else b=c[1];return b};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.objectProperty=function(a,b){return a};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[\" \"](a);return a};goog.reflect.sinkValue[\" \"]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.reflect.cache=function(a,b,c,d){d=d?d(b):b;return Object.prototype.hasOwnProperty.call(a,d)?a[d]:a[d]=c(b)};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent(\"Presto\")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent(\"Trident\")||goog.labs.userAgent.util.matchUserAgent(\"MSIE\")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent(\"Edge\")};\ngoog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase(\"WebKit\")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent(\"Gecko\")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};\ngoog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){a=goog.labs.userAgent.util.extractVersionTuples(a);var b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return\"Gecko\"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,\"Firefox\"):b[1];a=a[0];var c;if(a&&(c=a[2])&&(c=/Trident\\/([^\\s;]+)/.exec(c)))return c[1]}return\"\"};\ngoog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;b<a.length;b++){var c=a[b];if(\"Edge\"==c[0])return c}};goog.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),a)};goog.labs.userAgent.engine.getVersionForKey_=function(a,b){return(a=goog.array.find(a,function(a){return b==a[0]}))&&a[1]||\"\"};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_EDGE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()};\ngoog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null};goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()};goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera();goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE();goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge();\ngoog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE;goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko();goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit();goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent(\"Mobile\")};\ngoog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_();goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigatorTyped();return a&&a.platform||\"\"};goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.ASSUME_ANDROID=!1;goog.userAgent.ASSUME_IPHONE=!1;\ngoog.userAgent.ASSUME_IPAD=!1;goog.userAgent.ASSUME_IPOD=!1;goog.userAgent.ASSUME_KAIOS=!1;goog.userAgent.ASSUME_GO2PHONE=!1;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD;goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();\ngoog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows();goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()};goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_();goog.userAgent.isX11_=function(){var a=goog.userAgent.getNavigatorTyped();return!!a&&goog.string.contains(a.appVersion||\"\",\"X11\")};\ngoog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_();goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid();goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone();goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();\ngoog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod();goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos();goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS();goog.userAgent.GO2PHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_GO2PHONE:goog.labs.userAgent.platform.isGo2Phone();\ngoog.userAgent.determineVersion_=function(){var a=\"\",b=goog.userAgent.getVersionRegexResult_();b&&(a=b?b[1]:\"\");return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),null!=b&&b>parseFloat(a))?String(b):a};\ngoog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\\/([\\d\\.]+)/.exec(a);if(goog.userAgent.IE)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\\/(\\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \\/]?(\\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};\ngoog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;\ngoog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||(\"CSS1Compat\"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=!1;goog.userAgent.product.ASSUME_IPHONE=!1;goog.userAgent.product.ASSUME_IPAD=!1;goog.userAgent.product.ASSUME_ANDROID=!1;goog.userAgent.product.ASSUME_CHROME=!1;goog.userAgent.product.ASSUME_SAFARI=!1;\ngoog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;goog.userAgent.product.EDGE=goog.userAgent.EDGE;\ngoog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox();goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()};goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_();\ngoog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser();goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome();\ngoog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()};goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_();goog.crypt.base64={};goog.crypt.base64.byteToCharMap_=null;goog.crypt.base64.charToByteMap_=null;goog.crypt.base64.byteToCharMapWebSafe_=null;goog.crypt.base64.ENCODED_VALS_BASE=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.ENCODED_VALS_BASE+\"+/=\";goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.ENCODED_VALS_BASE+\"-_.\";\ngoog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA;goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||\"function\"==typeof goog.global.btoa;goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&\"function\"==typeof goog.global.atob;\ngoog.crypt.base64.encodeByteArray=function(a,b){goog.asserts.assert(goog.isArrayLike(a),\"encodeByteArray takes an array as a parameter\");goog.crypt.base64.init_();b=b?goog.crypt.base64.byteToCharMapWebSafe_:goog.crypt.base64.byteToCharMap_;for(var c=[],d=0;d<a.length;d+=3){var e=a[d],f=d+1<a.length,g=f?a[d+1]:0,h=d+2<a.length,k=h?a[d+2]:0,l=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|k>>6;k&=63;h||(k=64,f||(g=64));c.push(b[l],b[e],b[g],b[k])}return c.join(\"\")};\ngoog.crypt.base64.encodeString=function(a,b){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?goog.global.btoa(a):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a),b)};goog.crypt.base64.decodeString=function(a,b){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!b)return goog.global.atob(a);var c=\"\";goog.crypt.base64.decodeStringInternal_(a,function(a){c+=String.fromCharCode(a)});return c};\ngoog.crypt.base64.decodeStringToByteArray=function(a,b){var c=[];goog.crypt.base64.decodeStringInternal_(a,function(a){c.push(a)});return c};\ngoog.crypt.base64.decodeStringToUint8Array=function(a){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher(\"10\"),\"Browser does not support typed arrays\");var b=a.length,c=0;\"=\"===a[b-2]?c=2:\"=\"===a[b-1]&&(c=1);var d=new Uint8Array(Math.ceil(3*b/4)-c),e=0;goog.crypt.base64.decodeStringInternal_(a,function(a){d[e++]=a});return d.subarray(0,e)};\ngoog.crypt.base64.decodeStringInternal_=function(a,b){function c(b){for(;d<a.length;){var c=a.charAt(d++),e=goog.crypt.base64.charToByteMap_[c];if(null!=e)return e;if(!goog.string.isEmptyOrWhitespace(c))throw Error(\"Unknown base64 encoding at char: \"+c);}return b}goog.crypt.base64.init_();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}};\ngoog.crypt.base64.init_=function(){if(!goog.crypt.base64.byteToCharMap_){goog.crypt.base64.byteToCharMap_={};goog.crypt.base64.charToByteMap_={};goog.crypt.base64.byteToCharMapWebSafe_={};for(var a=0;a<goog.crypt.base64.ENCODED_VALS.length;a++)goog.crypt.base64.byteToCharMap_[a]=goog.crypt.base64.ENCODED_VALS.charAt(a),goog.crypt.base64.charToByteMap_[goog.crypt.base64.byteToCharMap_[a]]=a,goog.crypt.base64.byteToCharMapWebSafe_[a]=goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a),a>=goog.crypt.base64.ENCODED_VALS_BASE.length&&\n(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a)]=a)}};jspb.utils={};jspb.utils.split64Low=0;jspb.utils.split64High=0;jspb.utils.splitUint64=function(a){var b=a>>>0;a=Math.floor((a-b)/jspb.BinaryConstants.TWO_TO_32)>>>0;jspb.utils.split64Low=b;jspb.utils.split64High=a};jspb.utils.splitInt64=function(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/jspb.BinaryConstants.TWO_TO_32);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295<c&&(c=0,a++,4294967295<a&&(a=0)));jspb.utils.split64Low=c;jspb.utils.split64High=a};\njspb.utils.splitZigzag64=function(a){var b=0>a;a=2*Math.abs(a);jspb.utils.splitUint64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;b&&(0==a?0==c?c=a=4294967295:(c--,a=4294967295):a--);jspb.utils.split64Low=a;jspb.utils.split64High=c};\njspb.utils.splitFloat32=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)0<1/a?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(a))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(a>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|2139095040)>>>0;else if(a<jspb.BinaryConstants.FLOAT32_MIN)a=Math.round(a/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|\na)>>>0;else{var c=Math.floor(Math.log(a)/Math.LN2);a*=Math.pow(2,-c);a=Math.round(a*jspb.BinaryConstants.TWO_TO_23)&8388607;jspb.utils.split64High=0;jspb.utils.split64Low=(b<<31|c+127<<23|a)>>>0}};\njspb.utils.splitFloat64=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)jspb.utils.split64High=0<1/a?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(a))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(a>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(b<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(a<jspb.BinaryConstants.FLOAT64_MIN){var c=a/Math.pow(2,-1074);a=c/jspb.BinaryConstants.TWO_TO_32;jspb.utils.split64High=(b<<31|a)>>>0;jspb.utils.split64Low=c>>>0}else{var d=\nMath.floor(Math.log(a)/Math.LN2);1024==d&&(d=1023);c=a*Math.pow(2,-d);a=c*jspb.BinaryConstants.TWO_TO_20&1048575;c=c*jspb.BinaryConstants.TWO_TO_52>>>0;jspb.utils.split64High=(b<<31|d+1023<<20|a)>>>0;jspb.utils.split64Low=c}};\njspb.utils.splitHash64=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=a.charCodeAt(4),g=a.charCodeAt(5),h=a.charCodeAt(6);a=a.charCodeAt(7);jspb.utils.split64Low=b+(c<<8)+(d<<16)+(e<<24)>>>0;jspb.utils.split64High=f+(g<<8)+(h<<16)+(a<<24)>>>0};jspb.utils.joinUint64=function(a,b){return b*jspb.BinaryConstants.TWO_TO_32+a};\njspb.utils.joinInt64=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=jspb.utils.joinUint64(a,b);return c?-a:a};jspb.utils.joinZigzag64=function(a,b){var c=a&1;a=(a>>>1|b<<31)>>>0;b>>>=1;c&&(a=a+1>>>0,0==a&&(b=b+1>>>0));a=jspb.utils.joinUint64(a,b);return c?-a:a};jspb.utils.joinFloat32=function(a,b){b=2*(a>>31)+1;var c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*a:b*Math.pow(2,c-150)*(a+Math.pow(2,23))};\njspb.utils.joinFloat64=function(a,b){var c=2*(b>>31)+1,d=b>>>20&2047;a=jspb.BinaryConstants.TWO_TO_32*(b&1048575)+a;return 2047==d?a?NaN:Infinity*c:0==d?c*Math.pow(2,-1074)*a:c*Math.pow(2,d-1075)*(a+jspb.BinaryConstants.TWO_TO_52)};jspb.utils.joinHash64=function(a,b){return String.fromCharCode(a>>>0&255,a>>>8&255,a>>>16&255,a>>>24&255,b>>>0&255,b>>>8&255,b>>>16&255,b>>>24&255)};jspb.utils.DIGITS=\"0123456789abcdef\".split(\"\");\njspb.utils.joinUnsignedDecimalString=function(a,b){function c(a){for(var b=1E7,c=0;7>c;c++){b/=10;var d=a/b%10>>>0;if(0!=d||f)f=!0,g+=e[d]}}if(2097151>=b)return\"\"+(jspb.BinaryConstants.TWO_TO_32*b+a);var d=(a>>>24|b<<8)>>>0&16777215;b=b>>16&65535;a=(a&16777215)+6777216*d+6710656*b;d+=8147497*b;b*=2;1E7<=a&&(d+=Math.floor(a/1E7),a%=1E7);1E7<=d&&(b+=Math.floor(d/1E7),d%=1E7);var e=jspb.utils.DIGITS,f=!1,g=\"\";(b||f)&&c(b);(d||f)&&c(d);(a||f)&&c(a);return g};\njspb.utils.joinSignedDecimalString=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b+(0==a?1:0)>>>0);a=jspb.utils.joinUnsignedDecimalString(a,b);return c?\"-\"+a:a};jspb.utils.hash64ToDecimalString=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinSignedDecimalString(a,c):jspb.utils.joinUnsignedDecimalString(a,c)};\njspb.utils.hash64ArrayToDecimalStrings=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=jspb.utils.hash64ToDecimalString(a[d],b);return c};jspb.utils.decimalStringToHash64=function(a){function b(a,b){for(var c=0;8>c&&(1!==a||0<b);c++)b=a*e[c]+b,e[c]=b&255,b>>>=8}function c(){for(var a=0;8>a;a++)e[a]=~e[a]&255}goog.asserts.assert(0<a.length);var d=!1;\"-\"===a[0]&&(d=!0,a=a.slice(1));for(var e=[0,0,0,0,0,0,0,0],f=0;f<a.length;f++)b(10,jspb.utils.DIGITS.indexOf(a[f]));d&&(c(),b(1,1));return goog.crypt.byteArrayToString(e)};\njspb.utils.splitDecimalString=function(a){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a))};jspb.utils.hash64ToHexString=function(a){var b=Array(18);b[0]=\"0\";b[1]=\"x\";for(var c=0;8>c;c++){var d=a.charCodeAt(7-c);b[2*c+2]=jspb.utils.DIGITS[d>>4];b[2*c+3]=jspb.utils.DIGITS[d&15]}return b.join(\"\")};\njspb.utils.hexStringToHash64=function(a){a=a.toLowerCase();goog.asserts.assert(18==a.length);goog.asserts.assert(\"0\"==a[0]);goog.asserts.assert(\"x\"==a[1]);for(var b=\"\",c=0;8>c;c++){var d=jspb.utils.DIGITS.indexOf(a[2*c+2]),e=jspb.utils.DIGITS.indexOf(a[2*c+3]);b=String.fromCharCode(16*d+e)+b}return b};jspb.utils.hash64ToNumber=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinInt64(a,c):jspb.utils.joinUint64(a,c)};\njspb.utils.numberToHash64=function(a){jspb.utils.splitInt64(a);return jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)};jspb.utils.countVarints=function(a,b,c){for(var d=0,e=b;e<c;e++)d+=a[e]>>7;return c-b-d};\njspb.utils.countVarintFields=function(a,b,c,d){var e=0;d=8*d+jspb.BinaryConstants.WireType.VARINT;if(128>d)for(;b<c&&a[b++]==d;)for(e++;;){var f=a[b++];if(0==(f&128))break}else for(;b<c;){for(f=d;128<f;){if(a[b]!=(f&127|128))return e;b++;f>>=7}if(a[b++]!=f)break;for(e++;f=a[b++],0!=(f&128););}return e};jspb.utils.countFixedFields_=function(a,b,c,d,e){var f=0;if(128>d)for(;b<c&&a[b++]==d;)f++,b+=e;else for(;b<c;){for(var g=d;128<g;){if(a[b++]!=(g&127|128))return f;g>>=7}if(a[b++]!=g)break;f++;b+=e}return f};\njspb.utils.countFixed32Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED32,4)};jspb.utils.countFixed64Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED64,8)};\njspb.utils.countDelimitedFields=function(a,b,c,d){var e=0;for(d=8*d+jspb.BinaryConstants.WireType.DELIMITED;b<c;){for(var f=d;128<f;){if(a[b++]!=(f&127|128))return e;f>>=7}if(a[b++]!=f)break;e++;for(var g=0,h=1;f=a[b++],g+=(f&127)*h,h*=128,0!=(f&128););b+=g}return e};jspb.utils.debugBytesToTextFormat=function(a){var b='\"';if(a){a=jspb.utils.byteSourceToUint8Array(a);for(var c=0;c<a.length;c++)b+=\"\\\\x\",16>a[c]&&(b+=\"0\"),b+=a[c].toString(16)}return b+'\"'};\njspb.utils.debugScalarToTextFormat=function(a){return goog.isString(a)?goog.string.quote(a):a.toString()};jspb.utils.stringToByteArray=function(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=a.charCodeAt(c);if(255<d)throw Error(\"Conversion error: string contains codepoint outside of byte range\");b[c]=d}return b};\njspb.utils.byteSourceToUint8Array=function(a){if(a.constructor===Uint8Array)return a;if(a.constructor===ArrayBuffer||\"undefined\"!=typeof Buffer&&a.constructor===Buffer||a.constructor===Array)return new Uint8Array(a);if(a.constructor===String)return goog.crypt.base64.decodeStringToUint8Array(a);goog.asserts.fail(\"Type not convertible to Uint8Array.\");return new Uint8Array(0)};jspb.BinaryIterator=function(a,b,c){this.elements_=this.nextMethod_=this.decoder_=null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!0;this.init_(a,b,c)};jspb.BinaryIterator.prototype.init_=function(a,b,c){a&&b&&(this.decoder_=a,this.nextMethod_=b);this.elements_=c||null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!this.decoder_&&!this.elements_;this.next()};jspb.BinaryIterator.instanceCache_=[];\njspb.BinaryIterator.alloc=function(a,b,c){if(jspb.BinaryIterator.instanceCache_.length){var d=jspb.BinaryIterator.instanceCache_.pop();d.init_(a,b,c);return d}return new jspb.BinaryIterator(a,b,c)};jspb.BinaryIterator.prototype.free=function(){this.clear();100>jspb.BinaryIterator.instanceCache_.length&&jspb.BinaryIterator.instanceCache_.push(this)};\njspb.BinaryIterator.prototype.clear=function(){this.decoder_&&this.decoder_.free();this.elements_=this.nextMethod_=this.decoder_=null;this.cursor_=0;this.nextValue_=null;this.atEnd_=!0};jspb.BinaryIterator.prototype.get=function(){return this.nextValue_};jspb.BinaryIterator.prototype.atEnd=function(){return this.atEnd_};\njspb.BinaryIterator.prototype.next=function(){var a=this.nextValue_;this.decoder_?this.decoder_.atEnd()?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.nextMethod_.call(this.decoder_):this.elements_&&(this.cursor_==this.elements_.length?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.elements_[this.cursor_++]);return a};jspb.BinaryDecoder=function(a,b,c){this.bytes_=null;this.tempHigh_=this.tempLow_=this.cursor_=this.end_=this.start_=0;this.error_=!1;a&&this.setBlock(a,b,c)};\njspb.BinaryDecoder.instanceCache_=[];jspb.BinaryDecoder.alloc=function(a,b,c){if(jspb.BinaryDecoder.instanceCache_.length){var d=jspb.BinaryDecoder.instanceCache_.pop();a&&d.setBlock(a,b,c);return d}return new jspb.BinaryDecoder(a,b,c)};jspb.BinaryDecoder.prototype.free=function(){this.clear();100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)};jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)};\njspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null;this.cursor_=this.end_=this.start_=0;this.error_=!1};jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_};jspb.BinaryDecoder.prototype.setBlock=function(a,b,c){this.bytes_=jspb.utils.byteSourceToUint8Array(a);this.start_=goog.isDef(b)?b:0;this.end_=goog.isDef(c)?this.start_+c:this.bytes_.length;this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_};\njspb.BinaryDecoder.prototype.setEnd=function(a){this.end_=a};jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_};jspb.BinaryDecoder.prototype.setCursor=function(a){this.cursor_=a};jspb.BinaryDecoder.prototype.advance=function(a){this.cursor_+=a;goog.asserts.assert(this.cursor_<=this.end_)};jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_};\njspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_};jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_};\njspb.BinaryDecoder.prototype.readSplitVarint64_=function(){for(var a,b=0,c,d=0;4>d;d++)if(a=this.bytes_[this.cursor_++],b|=(a&127)<<7*d,128>a){this.tempLow_=b>>>0;this.tempHigh_=0;return}a=this.bytes_[this.cursor_++];b|=(a&127)<<28;c=0|(a&127)>>4;if(128>a)this.tempLow_=b>>>0,this.tempHigh_=c>>>0;else{for(d=0;5>d;d++)if(a=this.bytes_[this.cursor_++],c|=(a&127)<<7*d+3,128>a){this.tempLow_=b>>>0;this.tempHigh_=c>>>0;return}goog.asserts.fail(\"Failed to read varint, encoding is invalid.\");this.error_=\n!0}};jspb.BinaryDecoder.prototype.skipVarint=function(){for(;this.bytes_[this.cursor_]&128;)this.cursor_++;this.cursor_++};jspb.BinaryDecoder.prototype.unskipVarint=function(a){for(;128<a;)this.cursor_--,a>>>=7;this.cursor_--};\njspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var a=this.bytes_;var b=a[this.cursor_+0];var c=b&127;if(128>b)return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+1];c|=(b&127)<<7;if(128>b)return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+2];c|=(b&127)<<14;if(128>b)return this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+3];c|=(b&127)<<21;if(128>b)return this.cursor_+=4,goog.asserts.assert(this.cursor_<=\nthis.end_),c;b=a[this.cursor_+4];c|=(b&15)<<28;if(128>b)return this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),c>>>0;this.cursor_+=5;128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&goog.asserts.assert(!1);goog.asserts.assert(this.cursor_<=this.end_);return c};jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32;jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()};\njspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()};jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var a=this.readUnsignedVarint32();return a>>>1^-(a&1)};jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinUint64(this.tempLow_,this.tempHigh_)};\njspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){this.readSplitVarint64_();return jspb.utils.joinUnsignedDecimalString(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readSignedVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinInt64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){this.readSplitVarint64_();return jspb.utils.joinSignedDecimalString(this.tempLow_,this.tempHigh_)};\njspb.BinaryDecoder.prototype.readZigzagVarint64=function(){this.readSplitVarint64_();return jspb.utils.joinZigzag64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readZigzagVarint64().toString()};jspb.BinaryDecoder.prototype.readUint8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;goog.asserts.assert(this.cursor_<=this.end_);return a};\njspb.BinaryDecoder.prototype.readUint16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;goog.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8};jspb.BinaryDecoder.prototype.readUint32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;goog.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8|c<<16|d<<24)>>>0};\njspb.BinaryDecoder.prototype.readUint64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUint64(a,b)};jspb.BinaryDecoder.prototype.readUint64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUnsignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readInt8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;goog.asserts.assert(this.cursor_<=this.end_);return a<<24>>24};\njspb.BinaryDecoder.prototype.readInt16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;goog.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8)<<16>>16};jspb.BinaryDecoder.prototype.readInt32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;goog.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8|c<<16|d<<24};\njspb.BinaryDecoder.prototype.readInt64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinInt64(a,b)};jspb.BinaryDecoder.prototype.readInt64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinSignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readFloat=function(){var a=this.readUint32();return jspb.utils.joinFloat32(a,0)};\njspb.BinaryDecoder.prototype.readDouble=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinFloat64(a,b)};jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]};jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()};\njspb.BinaryDecoder.prototype.readString=function(a){var b=this.bytes_,c=this.cursor_;a=c+a;for(var d=[],e=\"\";c<a;){var f=b[c++];if(128>f)d.push(f);else if(192>f)continue;else if(224>f){var g=b[c++];d.push((f&31)<<6|g&63)}else if(240>f){g=b[c++];var h=b[c++];d.push((f&15)<<12|(g&63)<<6|h&63)}else if(248>f){g=b[c++];h=b[c++];var k=b[c++];f=(f&7)<<18|(g&63)<<12|(h&63)<<6|k&63;f-=65536;d.push((f>>10&1023)+55296,(f&1023)+56320)}8192<=d.length&&(e+=String.fromCharCode.apply(null,d),d.length=0)}e+=goog.crypt.byteArrayToString(d);\nthis.cursor_=c;return e};jspb.BinaryDecoder.prototype.readStringWithLength=function(){var a=this.readUnsignedVarint32();return this.readString(a)};jspb.BinaryDecoder.prototype.readBytes=function(a){if(0>a||this.cursor_+a>this.bytes_.length)return this.error_=!0,goog.asserts.fail(\"Invalid byte length!\"),new Uint8Array(0);var b=this.bytes_.subarray(this.cursor_,this.cursor_+a);this.cursor_+=a;goog.asserts.assert(this.cursor_<=this.end_);return b};\njspb.BinaryDecoder.prototype.readVarintHash64=function(){this.readSplitVarint64_();return jspb.utils.joinHash64(this.tempLow_,this.tempHigh_)};jspb.BinaryDecoder.prototype.readFixedHash64=function(){var a=this.bytes_,b=this.cursor_,c=a[b+0],d=a[b+1],e=a[b+2],f=a[b+3],g=a[b+4],h=a[b+5],k=a[b+6];a=a[b+7];this.cursor_+=8;return String.fromCharCode(c,d,e,f,g,h,k,a)};jspb.BinaryReader=function(a,b,c){this.decoder_=jspb.BinaryDecoder.alloc(a,b,c);this.fieldCursor_=this.decoder_.getCursor();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null};jspb.BinaryReader.instanceCache_=[];\njspb.BinaryReader.alloc=function(a,b,c){if(jspb.BinaryReader.instanceCache_.length){var d=jspb.BinaryReader.instanceCache_.pop();a&&d.decoder_.setBlock(a,b,c);return d}return new jspb.BinaryReader(a,b,c)};jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc;\njspb.BinaryReader.prototype.free=function(){this.decoder_.clear();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null;100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)};jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_};jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()};\njspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()};jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_};jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_};jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP};jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()};\njspb.BinaryReader.prototype.setBlock=function(a,b,c){this.decoder_.setBlock(a,b,c);this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.advance=function(a){this.decoder_.advance(a)};\njspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail(\"Decoder hit an error\"),!1;this.fieldCursor_=this.decoder_.getCursor();var a=this.decoder_.readUnsignedVarint32(),b=a>>>3;a&=7;if(a!=jspb.BinaryConstants.WireType.VARINT&&a!=jspb.BinaryConstants.WireType.FIXED32&&a!=jspb.BinaryConstants.WireType.FIXED64&&a!=jspb.BinaryConstants.WireType.DELIMITED&&a!=jspb.BinaryConstants.WireType.START_GROUP&&a!=jspb.BinaryConstants.WireType.END_GROUP)return goog.asserts.fail(\"Invalid wire type: %s (at position %s)\",\na,this.fieldCursor_),this.error_=!0,!1;this.nextField_=b;this.nextWireType_=a;return!0};jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)};jspb.BinaryReader.prototype.skipMatchingFields=function(){var a=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==a;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()};\njspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail(\"Invalid wire type for skipVarintField\"),this.skipField()):this.decoder_.skipVarint()};jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail(\"Invalid wire type for skipDelimitedField\"),this.skipField();else{var a=this.decoder_.readUnsignedVarint32();this.decoder_.advance(a)}};\njspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail(\"Invalid wire type for skipFixed32Field\"),this.skipField()):this.decoder_.advance(4)};jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail(\"Invalid wire type for skipFixed64Field\"),this.skipField()):this.decoder_.advance(8)};\njspb.BinaryReader.prototype.skipGroup=function(){var a=this.nextField_;do{if(!this.nextField()){goog.asserts.fail(\"Unmatched start-group tag: stream EOF\");this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=a&&(goog.asserts.fail(\"Unmatched end-group tag\"),this.error_=!0);break}this.skipField()}while(1)};\njspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail(\"Invalid wire encoding for field.\")}};\njspb.BinaryReader.prototype.registerReadCallback=function(a,b){goog.isNull(this.readCallbacks_)&&(this.readCallbacks_={});goog.asserts.assert(!this.readCallbacks_[a]);this.readCallbacks_[a]=b};jspb.BinaryReader.prototype.runReadCallback=function(a){goog.asserts.assert(!goog.isNull(this.readCallbacks_));a=this.readCallbacks_[a];goog.asserts.assert(a);return a(this)};\njspb.BinaryReader.prototype.readAny=function(a){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(a);var b=jspb.BinaryConstants.FieldType;switch(a){case b.DOUBLE:return this.readDouble();case b.FLOAT:return this.readFloat();case b.INT64:return this.readInt64();case b.UINT64:return this.readUint64();case b.INT32:return this.readInt32();case b.FIXED64:return this.readFixed64();case b.FIXED32:return this.readFixed32();case b.BOOL:return this.readBool();case b.STRING:return this.readString();\ncase b.GROUP:goog.asserts.fail(\"Group field type not supported in readAny()\");case b.MESSAGE:goog.asserts.fail(\"Message field type not supported in readAny()\");case b.BYTES:return this.readBytes();case b.UINT32:return this.readUint32();case b.ENUM:return this.readEnum();case b.SFIXED32:return this.readSfixed32();case b.SFIXED64:return this.readSfixed64();case b.SINT32:return this.readSint32();case b.SINT64:return this.readSint64();case b.FHASH64:return this.readFixedHash64();case b.VHASH64:return this.readVarintHash64();\ndefault:goog.asserts.fail(\"Invalid field type in readAny()\")}return 0};jspb.BinaryReader.prototype.readMessage=function(a,b){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var c=this.decoder_.getEnd(),d=this.decoder_.readUnsignedVarint32();d=this.decoder_.getCursor()+d;this.decoder_.setEnd(d);b(a,this);this.decoder_.setCursor(d);this.decoder_.setEnd(c)};\njspb.BinaryReader.prototype.readGroup=function(a,b,c){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP);goog.asserts.assert(this.nextField_==a);c(b,this);this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail(\"Group submessage did not end with an END_GROUP tag\"),this.error_=!0)};\njspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32(),b=this.decoder_.getCursor(),c=b+a;a=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),b,a);this.decoder_.setCursor(c);return a};jspb.BinaryReader.prototype.readInt32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32()};\njspb.BinaryReader.prototype.readInt32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32String()};jspb.BinaryReader.prototype.readInt64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};jspb.BinaryReader.prototype.readInt64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64String()};\njspb.BinaryReader.prototype.readUint32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32()};jspb.BinaryReader.prototype.readUint32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32String()};jspb.BinaryReader.prototype.readUint64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64()};\njspb.BinaryReader.prototype.readUint64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64String()};jspb.BinaryReader.prototype.readSint32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint32()};jspb.BinaryReader.prototype.readSint64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64()};\njspb.BinaryReader.prototype.readSint64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64String()};jspb.BinaryReader.prototype.readFixed32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readUint32()};jspb.BinaryReader.prototype.readFixed64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64()};\njspb.BinaryReader.prototype.readFixed64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64String()};jspb.BinaryReader.prototype.readSfixed32=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32()};jspb.BinaryReader.prototype.readSfixed32String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32().toString()};\njspb.BinaryReader.prototype.readSfixed64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64()};jspb.BinaryReader.prototype.readSfixed64String=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64String()};jspb.BinaryReader.prototype.readFloat=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readFloat()};\njspb.BinaryReader.prototype.readDouble=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readDouble()};jspb.BinaryReader.prototype.readBool=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return!!this.decoder_.readUnsignedVarint32()};jspb.BinaryReader.prototype.readEnum=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};\njspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(a)};jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(a)};\njspb.BinaryReader.prototype.readVarintHash64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readVarintHash64()};jspb.BinaryReader.prototype.readFixedHash64=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readFixedHash64()};\njspb.BinaryReader.prototype.readPackedField_=function(a){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var b=this.decoder_.readUnsignedVarint32();b=this.decoder_.getCursor()+b;for(var c=[];this.decoder_.getCursor()<b;)c.push(a.call(this.decoder_));return c};jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)};jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)};\njspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)};jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)};jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)};jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)};\njspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)};jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)};jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)};jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)};\njspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)};jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)};jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)};jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)};\njspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)};jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)};jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)};jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)};\njspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)};jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)};jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)};jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)};\njspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)};jspb.Map=function(a,b){this.arr_=a;this.valueCtor_=b;this.map_={};this.arrClean=!0;0<this.arr_.length&&this.loadFromArray_()};jspb.Map.prototype.loadFromArray_=function(){for(var a=0;a<this.arr_.length;a++){var b=this.arr_[a],c=b[0];this.map_[c.toString()]=new jspb.Map.Entry_(c,b[1])}this.arrClean=!0};\njspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var a=this.map_,b;for(b in a)if(Object.prototype.hasOwnProperty.call(a,b)){var c=a[b].valueWrapper;c&&c.toArray()}}}else{this.arr_.length=0;a=this.stringKeys_();a.sort();for(b=0;b<a.length;b++){var d=this.map_[a[b]];(c=d.valueWrapper)&&c.toArray();this.arr_.push([d.key,d.value])}this.arrClean=!0}return this.arr_};\njspb.Map.prototype.toObject=function(a,b){for(var c=this.toArray(),d=[],e=0;e<c.length;e++){var f=this.map_[c[e][0].toString()];this.wrapEntry_(f);var g=f.valueWrapper;g?(goog.asserts.assert(b),d.push([f.key,b(a,g)])):d.push([f.key,f.value])}return d};jspb.Map.fromObject=function(a,b,c){b=new jspb.Map([],b);for(var d=0;d<a.length;d++){var e=a[d][0],f=c(a[d][1]);b.set(e,f)}return b};jspb.Map.ArrayIteratorIterable_=function(a){this.idx_=0;this.arr_=a};\njspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}};\"undefined\"!=typeof Symbol&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this});jspb.Map.prototype.getLength=function(){return this.stringKeys_().length};jspb.Map.prototype.clear=function(){this.map_={};this.arrClean=!1};\njspb.Map.prototype.del=function(a){a=a.toString();var b=this.map_.hasOwnProperty(a);delete this.map_[a];this.arrClean=!1;return b};jspb.Map.prototype.getEntryList=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,d.value])}return a};jspb.Map.prototype.entries=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,this.wrapEntry_(d)])}return new jspb.Map.ArrayIteratorIterable_(a)};\njspb.Map.prototype.keys=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.map_[b[c]].key);return new jspb.Map.ArrayIteratorIterable_(a)};jspb.Map.prototype.values=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.wrapEntry_(this.map_[b[c]]));return new jspb.Map.ArrayIteratorIterable_(a)};\njspb.Map.prototype.forEach=function(a,b){var c=this.stringKeys_();c.sort();for(var d=0;d<c.length;d++){var e=this.map_[c[d]];a.call(b,this.wrapEntry_(e),e.key,this)}};jspb.Map.prototype.set=function(a,b){var c=new jspb.Map.Entry_(a);this.valueCtor_?(c.valueWrapper=b,c.value=b.toArray()):c.value=b;this.map_[a.toString()]=c;this.arrClean=!1;return this};jspb.Map.prototype.wrapEntry_=function(a){return this.valueCtor_?(a.valueWrapper||(a.valueWrapper=new this.valueCtor_(a.value)),a.valueWrapper):a.value};\njspb.Map.prototype.get=function(a){if(a=this.map_[a.toString()])return this.wrapEntry_(a)};jspb.Map.prototype.has=function(a){return a.toString()in this.map_};jspb.Map.prototype.serializeBinary=function(a,b,c,d,e){var f=this.stringKeys_();f.sort();for(var g=0;g<f.length;g++){var h=this.map_[f[g]];b.beginSubMessage(a);c.call(b,1,h.key);this.valueCtor_?d.call(b,2,this.wrapEntry_(h),e):d.call(b,2,h.value);b.endSubMessage()}};\njspb.Map.deserializeBinary=function(a,b,c,d,e,f){for(var g=void 0;b.nextField()&&!b.isEndGroup();){var h=b.getFieldNumber();1==h?f=c.call(b):2==h&&(a.valueCtor_?(goog.asserts.assert(e),g=new a.valueCtor_,d.call(b,g,e)):g=d.call(b))}goog.asserts.assert(void 0!=f);goog.asserts.assert(void 0!=g);a.set(f,g)};jspb.Map.prototype.stringKeys_=function(){var a=this.map_,b=[],c;for(c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b};\njspb.Map.Entry_=function(a,b){this.key=a;this.value=b;this.valueWrapper=void 0};jspb.ExtensionFieldInfo=function(a,b,c,d,e){this.fieldIndex=a;this.fieldName=b;this.ctor=c;this.toObjectFn=d;this.isRepeated=e};jspb.ExtensionFieldBinaryInfo=function(a,b,c,d,e,f){this.fieldInfo=a;this.binaryReaderFn=b;this.binaryWriterFn=c;this.binaryMessageSerializeFn=d;this.binaryMessageDeserializeFn=e;this.isPacked=f};jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor};jspb.Message=function(){};jspb.Message.GENERATE_TO_OBJECT=!0;jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE;\njspb.Message.GENERATE_TO_STRING=!0;jspb.Message.ASSUME_LOCAL_ARRAYS=!1;jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0;jspb.Message.SUPPORTS_UINT8ARRAY_=\"function\"==typeof Uint8Array;jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_};jspb.Message.getIndex_=function(a,b){return b+a.arrayIndexOffset_};jspb.Message.hiddenES6Property_=function(){};jspb.Message.getFieldNumber_=function(a,b){return b-a.arrayIndexOffset_};\njspb.Message.initialize=function(a,b,c,d,e,f){a.wrappers_=null;b||(b=c?[c]:[]);a.messageId_=c?String(c):void 0;a.arrayIndexOffset_=0===c?-1:0;a.array=b;jspb.Message.initPivotAndExtensionObject_(a,d);a.convertedPrimitiveFields_={};jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(a.repeatedFields=e);if(e)for(b=0;b<e.length;b++)c=e[b],c<a.pivot_?(c=jspb.Message.getIndex_(a,c),a.array[c]=a.array[c]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(a),a.extensionObject_[c]=\na.extensionObject_[c]||jspb.Message.EMPTY_LIST_SENTINEL_);if(f&&f.length)for(b=0;b<f.length;b++)jspb.Message.computeOneofCase(a,f[b])};jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[];jspb.Message.isArray_=function(a){return jspb.Message.ASSUME_LOCAL_ARRAYS?a instanceof Array:goog.isArray(a)};jspb.Message.isExtensionObject_=function(a){return null!==a&&\"object\"==typeof a&&!jspb.Message.isArray_(a)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)};\njspb.Message.initPivotAndExtensionObject_=function(a,b){var c=a.array.length,d=-1;if(c&&(d=c-1,c=a.array[d],jspb.Message.isExtensionObject_(c))){a.pivot_=jspb.Message.getFieldNumber_(a,d);a.extensionObject_=c;return}-1<b?(a.pivot_=Math.max(b,jspb.Message.getFieldNumber_(a,d+1)),a.extensionObject_=null):a.pivot_=Number.MAX_VALUE};jspb.Message.maybeInitEmptyExtensionObject_=function(a){var b=jspb.Message.getIndex_(a,a.pivot_);a.array[b]||(a.extensionObject_=a.array[b]={})};\njspb.Message.toObjectList=function(a,b,c){for(var d=[],e=0;e<a.length;e++)d[e]=b.call(a[e],c,a[e]);return d};jspb.Message.toObjectExtension=function(a,b,c,d,e){for(var f in c){var g=c[f],h=d.call(a,g);if(null!=h){for(var k in g.fieldName)if(g.fieldName.hasOwnProperty(k))break;b[k]=g.toObjectFn?g.isRepeated?jspb.Message.toObjectList(h,g.toObjectFn,e):g.toObjectFn(e,h):h}}};\njspb.Message.serializeBinaryExtensions=function(a,b,c,d){for(var e in c){var f=c[e],g=f.fieldInfo;if(!f.binaryWriterFn)throw Error(\"Message extension present that was generated without binary serialization support\");var h=d.call(a,g);if(null!=h)if(g.isMessageType())if(f.binaryMessageSerializeFn)f.binaryWriterFn.call(b,g.fieldIndex,h,f.binaryMessageSerializeFn);else throw Error(\"Message extension present holding submessage without binary support enabled, and message is being serialized to binary format\");\nelse f.binaryWriterFn.call(b,g.fieldIndex,h)}};jspb.Message.readBinaryExtension=function(a,b,c,d,e){var f=c[b.getFieldNumber()];if(f){c=f.fieldInfo;if(!f.binaryReaderFn)throw Error(\"Deserializing extension whose generated code does not support binary format\");if(c.isMessageType()){var g=new c.ctor;f.binaryReaderFn.call(b,g,f.binaryMessageDeserializeFn)}else g=f.binaryReaderFn.call(b);c.isRepeated&&!f.isPacked?(b=d.call(a,c))?b.push(g):e.call(a,c,[g]):e.call(a,c,g)}else b.skipField()};\njspb.Message.getField=function(a,b){if(b<a.pivot_){b=jspb.Message.getIndex_(a,b);var c=a.array[b];return c===jspb.Message.EMPTY_LIST_SENTINEL_?a.array[b]=[]:c}if(a.extensionObject_)return c=a.extensionObject_[b],c===jspb.Message.EMPTY_LIST_SENTINEL_?a.extensionObject_[b]=[]:c};jspb.Message.getRepeatedField=function(a,b){return jspb.Message.getField(a,b)};jspb.Message.getOptionalFloatingPointField=function(a,b){a=jspb.Message.getField(a,b);return null==a?a:+a};\njspb.Message.getBooleanField=function(a,b){a=jspb.Message.getField(a,b);return null==a?a:!!a};jspb.Message.getRepeatedFloatingPointField=function(a,b){var c=jspb.Message.getRepeatedField(a,b);a.convertedPrimitiveFields_||(a.convertedPrimitiveFields_={});if(!a.convertedPrimitiveFields_[b]){for(var d=0;d<c.length;d++)c[d]=+c[d];a.convertedPrimitiveFields_[b]=!0}return c};\njspb.Message.getRepeatedBooleanField=function(a,b){var c=jspb.Message.getRepeatedField(a,b);a.convertedPrimitiveFields_||(a.convertedPrimitiveFields_={});if(!a.convertedPrimitiveFields_[b]){for(var d=0;d<c.length;d++)c[d]=!!c[d];a.convertedPrimitiveFields_[b]=!0}return c};\njspb.Message.bytesAsB64=function(a){if(null==a||goog.isString(a))return a;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return goog.crypt.base64.encodeByteArray(a);goog.asserts.fail(\"Cannot coerce to b64 string: \"+goog.typeOf(a));return null};jspb.Message.bytesAsU8=function(a){if(null==a||a instanceof Uint8Array)return a;if(goog.isString(a))return goog.crypt.base64.decodeStringToUint8Array(a);goog.asserts.fail(\"Cannot coerce to Uint8Array: \"+goog.typeOf(a));return null};\njspb.Message.bytesListAsB64=function(a){jspb.Message.assertConsistentTypes_(a);return!a.length||goog.isString(a[0])?a:goog.array.map(a,jspb.Message.bytesAsB64)};jspb.Message.bytesListAsU8=function(a){jspb.Message.assertConsistentTypes_(a);return!a.length||a[0]instanceof Uint8Array?a:goog.array.map(a,jspb.Message.bytesAsU8)};\njspb.Message.assertConsistentTypes_=function(a){if(goog.DEBUG&&a&&1<a.length){var b=goog.typeOf(a[0]);goog.array.forEach(a,function(a){goog.typeOf(a)!=b&&goog.asserts.fail(\"Inconsistent type in JSPB repeated field array. Got \"+goog.typeOf(a)+\" expected \"+b)})}};jspb.Message.getFieldWithDefault=function(a,b,c){a=jspb.Message.getField(a,b);return null==a?c:a};jspb.Message.getBooleanFieldWithDefault=function(a,b,c){a=jspb.Message.getBooleanField(a,b);return null==a?c:a};\njspb.Message.getFloatingPointFieldWithDefault=function(a,b,c){a=jspb.Message.getOptionalFloatingPointField(a,b);return null==a?c:a};jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault;jspb.Message.getMapField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(b in a.wrappers_)return a.wrappers_[b];var e=jspb.Message.getField(a,b);if(!e){if(c)return;e=[];jspb.Message.setField(a,b,e)}return a.wrappers_[b]=new jspb.Map(e,d)};\njspb.Message.setField=function(a,b,c){b<a.pivot_?a.array[jspb.Message.getIndex_(a,b)]=c:(jspb.Message.maybeInitEmptyExtensionObject_(a),a.extensionObject_[b]=c)};jspb.Message.setProto3IntField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};jspb.Message.setProto3FloatField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};jspb.Message.setProto3BooleanField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,!1)};\njspb.Message.setProto3StringField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,\"\")};jspb.Message.setProto3BytesField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,\"\")};jspb.Message.setProto3EnumField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};jspb.Message.setProto3StringIntField=function(a,b,c){jspb.Message.setFieldIgnoringDefault_(a,b,c,\"0\")};\njspb.Message.setFieldIgnoringDefault_=function(a,b,c,d){c!==d?jspb.Message.setField(a,b,c):a.array[jspb.Message.getIndex_(a,b)]=null};jspb.Message.addToRepeatedField=function(a,b,c,d){a=jspb.Message.getRepeatedField(a,b);void 0!=d?a.splice(d,0,c):a.push(c)};jspb.Message.setOneofField=function(a,b,c,d){(c=jspb.Message.computeOneofCase(a,c))&&c!==b&&void 0!==d&&(a.wrappers_&&c in a.wrappers_&&(a.wrappers_[c]=void 0),jspb.Message.setField(a,c,void 0));jspb.Message.setField(a,b,d)};\njspb.Message.computeOneofCase=function(a,b){for(var c,d,e=0;e<b.length;e++){var f=b[e],g=jspb.Message.getField(a,f);null!=g&&(c=f,d=g,jspb.Message.setField(a,f,void 0))}return c?(jspb.Message.setField(a,c,d),c):0};jspb.Message.getWrapperField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){var e=jspb.Message.getField(a,c);if(d||e)a.wrappers_[c]=new b(e)}return a.wrappers_[c]};\njspb.Message.getRepeatedWrapperField=function(a,b,c){jspb.Message.wrapRepeatedField_(a,b,c);b=a.wrappers_[c];b==jspb.Message.EMPTY_LIST_SENTINEL_&&(b=a.wrappers_[c]=[]);return b};jspb.Message.wrapRepeatedField_=function(a,b,c){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){for(var d=jspb.Message.getRepeatedField(a,c),e=[],f=0;f<d.length;f++)e[f]=new b(d[f]);a.wrappers_[c]=e}};\njspb.Message.setWrapperField=function(a,b,c){a.wrappers_||(a.wrappers_={});var d=c?c.toArray():c;a.wrappers_[b]=c;jspb.Message.setField(a,b,d)};jspb.Message.setOneofWrapperField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});var e=d?d.toArray():d;a.wrappers_[b]=d;jspb.Message.setOneofField(a,b,c,e)};jspb.Message.setRepeatedWrapperField=function(a,b,c){a.wrappers_||(a.wrappers_={});c=c||[];for(var d=[],e=0;e<c.length;e++)d[e]=c[e].toArray();a.wrappers_[b]=c;jspb.Message.setField(a,b,d)};\njspb.Message.addToRepeatedWrapperField=function(a,b,c,d,e){jspb.Message.wrapRepeatedField_(a,d,b);var f=a.wrappers_[b];f||(f=a.wrappers_[b]=[]);c=c?c:new d;a=jspb.Message.getRepeatedField(a,b);void 0!=e?(f.splice(e,0,c),a.splice(e,0,c.toArray())):(f.push(c),a.push(c.toArray()));return c};jspb.Message.toMap=function(a,b,c,d){for(var e={},f=0;f<a.length;f++)e[b.call(a[f])]=c?c.call(a[f],d,a[f]):a[f];return e};\njspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var a in this.wrappers_){var b=this.wrappers_[a];if(goog.isArray(b))for(var c=0;c<b.length;c++)b[c]&&b[c].toArray();else b&&b.toArray()}};jspb.Message.prototype.toArray=function(){this.syncMapFields_();return this.array};jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){this.syncMapFields_();return this.array.toString()});\njspb.Message.prototype.getExtension=function(a){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var b=a.fieldIndex;if(a.isRepeated){if(a.isMessageType())return this.wrappers_[b]||(this.wrappers_[b]=goog.array.map(this.extensionObject_[b]||[],function(b){return new a.ctor(b)})),this.wrappers_[b]}else if(a.isMessageType())return!this.wrappers_[b]&&this.extensionObject_[b]&&(this.wrappers_[b]=new a.ctor(this.extensionObject_[b])),this.wrappers_[b];return this.extensionObject_[b]}};\njspb.Message.prototype.setExtension=function(a,b){this.wrappers_||(this.wrappers_={});jspb.Message.maybeInitEmptyExtensionObject_(this);var c=a.fieldIndex;a.isRepeated?(b=b||[],a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=goog.array.map(b,function(a){return a.toArray()})):this.extensionObject_[c]=b):a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=b?b.toArray():b):this.extensionObject_[c]=b;return this};\njspb.Message.difference=function(a,b){if(!(a instanceof b.constructor))throw Error(\"Messages have different types.\");var c=a.toArray();b=b.toArray();var d=[],e=0,f=c.length>b.length?c.length:b.length;a.getJsPbMessageId()&&(d[0]=a.getJsPbMessageId(),e=1);for(;e<f;e++)jspb.Message.compareFields(c[e],b[e])||(d[e]=b[e]);return new a.constructor(d)};jspb.Message.equals=function(a,b){return a==b||!(!a||!b)&&a instanceof b.constructor&&jspb.Message.compareFields(a.toArray(),b.toArray())};\njspb.Message.compareExtensions=function(a,b){a=a||{};b=b||{};var c={},d;for(d in a)c[d]=0;for(d in b)c[d]=0;for(d in c)if(!jspb.Message.compareFields(a[d],b[d]))return!1;return!0};\njspb.Message.compareFields=function(a,b){if(a==b)return!0;if(!goog.isObject(a)||!goog.isObject(b))return goog.isNumber(a)&&isNaN(a)||goog.isNumber(b)&&isNaN(b)?String(a)==String(b):!1;if(a.constructor!=b.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a.constructor===Uint8Array){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0}if(a.constructor===Array){var d=void 0,e=void 0,f=Math.max(a.length,b.length);for(c=0;c<f;c++){var g=a[c],h=b[c];g&&g.constructor==\nObject&&(goog.asserts.assert(void 0===d),goog.asserts.assert(c===a.length-1),d=g,g=void 0);h&&h.constructor==Object&&(goog.asserts.assert(void 0===e),goog.asserts.assert(c===b.length-1),e=h,h=void 0);if(!jspb.Message.compareFields(g,h))return!1}return d||e?(d=d||{},e=e||{},jspb.Message.compareExtensions(d,e)):!0}if(a.constructor===Object)return jspb.Message.compareExtensions(a,b);throw Error(\"Invalid type in JSPB array\");};jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)};\njspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)};jspb.Message.clone=function(a){return jspb.Message.cloneMessage(a)};jspb.Message.cloneMessage=function(a){return new a.constructor(jspb.Message.clone_(a.toArray()))};\njspb.Message.copyInto=function(a,b){goog.asserts.assertInstanceof(a,jspb.Message);goog.asserts.assertInstanceof(b,jspb.Message);goog.asserts.assert(a.constructor==b.constructor,\"Copy source and target message should have the same type.\");a=jspb.Message.clone(a);for(var c=b.toArray(),d=a.toArray(),e=c.length=0;e<d.length;e++)c[e]=d[e];b.wrappers_=a.wrappers_;b.extensionObject_=a.extensionObject_};\njspb.Message.clone_=function(a){if(goog.isArray(a)){for(var b=Array(a.length),c=0;c<a.length;c++){var d=a[c];null!=d&&(b[c]=\"object\"==typeof d?jspb.Message.clone_(goog.asserts.assert(d)):d)}return b}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return new Uint8Array(a);b={};for(c in a)d=a[c],null!=d&&(b[c]=\"object\"==typeof d?jspb.Message.clone_(goog.asserts.assert(d)):d);return b};jspb.Message.registerMessageType=function(a,b){jspb.Message.registry_[a]=b;b.messageId=a};\njspb.Message.registry_={};jspb.Message.messageSetExtensions={};jspb.Message.messageSetExtensionsBinary={};jspb.arith={};jspb.arith.UInt64=function(a,b){this.lo=a;this.hi=b};jspb.arith.UInt64.prototype.cmp=function(a){return this.hi<a.hi||this.hi==a.hi&&this.lo<a.lo?-1:this.hi==a.hi&&this.lo==a.lo?0:1};jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)};jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)};\njspb.arith.UInt64.prototype.msb=function(){return!!(this.hi&2147483648)};jspb.arith.UInt64.prototype.lsb=function(){return!!(this.lo&1)};jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi};jspb.arith.UInt64.prototype.add=function(a){return new jspb.arith.UInt64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};\njspb.arith.UInt64.prototype.sub=function(a){return new jspb.arith.UInt64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.UInt64.mul32x32=function(a,b){var c=a&65535;a>>>=16;var d=b&65535,e=b>>>16;b=c*d+65536*(c*e&65535)+65536*(a*d&65535);for(c=a*e+(c*e>>>16)+(a*d>>>16);4294967296<=b;)b-=4294967296,c+=1;return new jspb.arith.UInt64(b>>>0,c>>>0)};\njspb.arith.UInt64.prototype.mul=function(a){var b=jspb.arith.UInt64.mul32x32(this.lo,a);a=jspb.arith.UInt64.mul32x32(this.hi,a);a.hi=a.lo;a.lo=0;return b.add(a)};\njspb.arith.UInt64.prototype.div=function(a){if(0==a)return[];var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(this.lo,this.hi);a=new jspb.arith.UInt64(a,0);for(var d=new jspb.arith.UInt64(1,0);!a.msb();)a=a.leftShift(),d=d.leftShift();for(;!d.zero();)0>=a.cmp(c)&&(b=b.add(d),c=c.sub(a)),a=a.rightShift(),d=d.rightShift();return[b,c]};jspb.arith.UInt64.prototype.toString=function(){for(var a=\"\",b=this;!b.zero();){b=b.div(10);var c=b[0];a=b[1].lo+a;b=c}\"\"==a&&(a=\"0\");return a};\njspb.arith.UInt64.fromString=function(a){for(var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(0,0),d=0;d<a.length;d++){if(\"0\">a[d]||\"9\"<a[d])return null;var e=parseInt(a[d],10);c.lo=e;b=b.mul(10).add(c)}return b};jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)};jspb.arith.Int64=function(a,b){this.lo=a;this.hi=b};\njspb.arith.Int64.prototype.add=function(a){return new jspb.arith.Int64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.sub=function(a){return new jspb.arith.Int64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)};\njspb.arith.Int64.prototype.toString=function(){var a=0!=(this.hi&2147483648),b=new jspb.arith.UInt64(this.lo,this.hi);a&&(b=(new jspb.arith.UInt64(0,0)).sub(b));return(a?\"-\":\"\")+b.toString()};jspb.arith.Int64.fromString=function(a){var b=0<a.length&&\"-\"==a[0];b&&(a=a.substring(1));a=jspb.arith.UInt64.fromString(a);if(null===a)return null;b&&(a=(new jspb.arith.UInt64(0,0)).sub(a));return new jspb.arith.Int64(a.lo,a.hi)};jspb.BinaryEncoder=function(){this.buffer_=[]};jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length};jspb.BinaryEncoder.prototype.end=function(){var a=this.buffer_;this.buffer_=[];return a};\njspb.BinaryEncoder.prototype.writeSplitVarint64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);for(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);0<b||127<a;)this.buffer_.push(a&127|128),a=(a>>>7|b<<25)>>>0,b>>>=7;this.buffer_.push(a)};\njspb.BinaryEncoder.prototype.writeSplitFixed64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);this.writeUint32(a);this.writeUint32(b)};\njspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(a){goog.asserts.assert(a==Math.floor(a));for(goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);127<a;)this.buffer_.push(a&127|128),a>>>=7;this.buffer_.push(a)};\njspb.BinaryEncoder.prototype.writeSignedVarint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);if(0<=a)this.writeUnsignedVarint32(a);else{for(var b=0;9>b;b++)this.buffer_.push(a&127|128),a>>=7;this.buffer_.push(1)}};\njspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeSignedVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeZigzagVarint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeUnsignedVarint32((a<<1^a>>31)>>>0)};jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitZigzag64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(a){this.writeZigzagVarint64(parseInt(a,10))};jspb.BinaryEncoder.prototype.writeUint8=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&256>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeUint16=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&65536>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};\njspb.BinaryEncoder.prototype.writeUint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};jspb.BinaryEncoder.prototype.writeUint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitUint64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeInt8=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(-128<=a&&128>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeInt16=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(-32768<=a&&32768>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};\njspb.BinaryEncoder.prototype.writeInt32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};\njspb.BinaryEncoder.prototype.writeInt64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeInt64String=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(+a>=-jspb.BinaryConstants.TWO_TO_63&&+a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};jspb.BinaryEncoder.prototype.writeFloat=function(a){goog.asserts.assert(a>=-jspb.BinaryConstants.FLOAT32_MAX&&a<=jspb.BinaryConstants.FLOAT32_MAX);jspb.utils.splitFloat32(a);this.writeUint32(jspb.utils.split64Low)};\njspb.BinaryEncoder.prototype.writeDouble=function(a){goog.asserts.assert(a>=-jspb.BinaryConstants.FLOAT64_MAX&&a<=jspb.BinaryConstants.FLOAT64_MAX);jspb.utils.splitFloat64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};jspb.BinaryEncoder.prototype.writeBool=function(a){goog.asserts.assert(goog.isBoolean(a)||goog.isNumber(a));this.buffer_.push(a?1:0)};\njspb.BinaryEncoder.prototype.writeEnum=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeSignedVarint32(a)};jspb.BinaryEncoder.prototype.writeBytes=function(a){this.buffer_.push.apply(this.buffer_,a)};jspb.BinaryEncoder.prototype.writeVarintHash64=function(a){jspb.utils.splitHash64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeFixedHash64=function(a){jspb.utils.splitHash64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeString=function(a){for(var b=this.buffer_.length,c=0;c<a.length;c++){var d=a.charCodeAt(c);if(128>d)this.buffer_.push(d);else if(2048>d)this.buffer_.push(d>>6|192),this.buffer_.push(d&63|128);else if(65536>d)if(55296<=d&&56319>=d&&c+1<a.length){var e=a.charCodeAt(c+1);56320<=e&&57343>=e&&(d=1024*(d-55296)+e-56320+65536,this.buffer_.push(d>>18|240),this.buffer_.push(d>>12&63|128),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|128),c++)}else this.buffer_.push(d>>\n12|224),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|128)}return this.buffer_.length-b};jspb.BinaryWriter=function(){this.blocks_=[];this.totalLength_=0;this.encoder_=new jspb.BinaryEncoder;this.bookmarks_=[]};jspb.BinaryWriter.prototype.appendUint8Array_=function(a){var b=this.encoder_.end();this.blocks_.push(b);this.blocks_.push(a);this.totalLength_+=b.length+a.length};\njspb.BinaryWriter.prototype.beginDelimited_=function(a){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED);a=this.encoder_.end();this.blocks_.push(a);this.totalLength_+=a.length;a.push(this.totalLength_);return a};jspb.BinaryWriter.prototype.endDelimited_=function(a){var b=a.pop();b=this.totalLength_+this.encoder_.length()-b;for(goog.asserts.assert(0<=b);127<b;)a.push(b&127|128),b>>>=7,this.totalLength_++;a.push(b);this.totalLength_++};\njspb.BinaryWriter.prototype.writeSerializedMessage=function(a,b,c){this.appendUint8Array_(a.subarray(b,c))};jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(a,b,c){null!=a&&null!=b&&null!=c&&this.writeSerializedMessage(a,b,c)};jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[];this.encoder_.end();this.totalLength_=0;this.bookmarks_=[]};\njspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(0==this.bookmarks_.length);for(var a=new Uint8Array(this.totalLength_+this.encoder_.length()),b=this.blocks_,c=b.length,d=0,e=0;e<c;e++){var f=b[e];a.set(f,d);d+=f.length}b=this.encoder_.end();a.set(b,d);d+=b.length;goog.asserts.assert(d==a.length);this.blocks_=[a];return a};jspb.BinaryWriter.prototype.getResultBase64String=function(a){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),a)};\njspb.BinaryWriter.prototype.beginSubMessage=function(a){this.bookmarks_.push(this.beginDelimited_(a))};jspb.BinaryWriter.prototype.endSubMessage=function(){goog.asserts.assert(0<=this.bookmarks_.length);this.endDelimited_(this.bookmarks_.pop())};jspb.BinaryWriter.prototype.writeFieldHeader_=function(a,b){goog.asserts.assert(1<=a&&a==Math.floor(a));this.encoder_.writeUnsignedVarint32(8*a+b)};\njspb.BinaryWriter.prototype.writeAny=function(a,b,c){var d=jspb.BinaryConstants.FieldType;switch(a){case d.DOUBLE:this.writeDouble(b,c);break;case d.FLOAT:this.writeFloat(b,c);break;case d.INT64:this.writeInt64(b,c);break;case d.UINT64:this.writeUint64(b,c);break;case d.INT32:this.writeInt32(b,c);break;case d.FIXED64:this.writeFixed64(b,c);break;case d.FIXED32:this.writeFixed32(b,c);break;case d.BOOL:this.writeBool(b,c);break;case d.STRING:this.writeString(b,c);break;case d.GROUP:goog.asserts.fail(\"Group field type not supported in writeAny()\");\nbreak;case d.MESSAGE:goog.asserts.fail(\"Message field type not supported in writeAny()\");break;case d.BYTES:this.writeBytes(b,c);break;case d.UINT32:this.writeUint32(b,c);break;case d.ENUM:this.writeEnum(b,c);break;case d.SFIXED32:this.writeSfixed32(b,c);break;case d.SFIXED64:this.writeSfixed64(b,c);break;case d.SINT32:this.writeSint32(b,c);break;case d.SINT64:this.writeSint64(b,c);break;case d.FHASH64:this.writeFixedHash64(b,c);break;case d.VHASH64:this.writeVarintHash64(b,c);break;default:goog.asserts.fail(\"Invalid field type in writeAny()\")}};\njspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(b))};jspb.BinaryWriter.prototype.writeSignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(b))};\njspb.BinaryWriter.prototype.writeSignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(b))};jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(b))};jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(b))};\njspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(b))};jspb.BinaryWriter.prototype.writeInt32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};\njspb.BinaryWriter.prototype.writeInt32String=function(a,b){null!=b&&(b=parseInt(b,10),goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};jspb.BinaryWriter.prototype.writeInt64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(a,b))};\njspb.BinaryWriter.prototype.writeInt64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeUint32=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};\njspb.BinaryWriter.prototype.writeUint32String=function(a,b){null!=b&&(b=parseInt(b,10),goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};jspb.BinaryWriter.prototype.writeUint64=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(a,b))};\njspb.BinaryWriter.prototype.writeUint64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeSint32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(a,b))};\njspb.BinaryWriter.prototype.writeSint64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(a,b))};jspb.BinaryWriter.prototype.writeSint64String=function(a,b){null!=b&&(goog.asserts.assert(+b>=-jspb.BinaryConstants.TWO_TO_63&&+b<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64String_(a,b))};\njspb.BinaryWriter.prototype.writeFixed32=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(b))};jspb.BinaryWriter.prototype.writeFixed64=function(a,b){null!=b&&(goog.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(b))};\njspb.BinaryWriter.prototype.writeFixed64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeSfixed32=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(b))};\njspb.BinaryWriter.prototype.writeSfixed64=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(b))};jspb.BinaryWriter.prototype.writeSfixed64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};\njspb.BinaryWriter.prototype.writeFloat=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(b))};jspb.BinaryWriter.prototype.writeDouble=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(b))};jspb.BinaryWriter.prototype.writeBool=function(a,b){null!=b&&(goog.asserts.assert(goog.isBoolean(b)||goog.isNumber(b)),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(b))};\njspb.BinaryWriter.prototype.writeEnum=function(a,b){null!=b&&(goog.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};jspb.BinaryWriter.prototype.writeString=function(a,b){null!=b&&(a=this.beginDelimited_(a),this.encoder_.writeString(b),this.endDelimited_(a))};\njspb.BinaryWriter.prototype.writeBytes=function(a,b){null!=b&&(b=jspb.utils.byteSourceToUint8Array(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),this.appendUint8Array_(b))};jspb.BinaryWriter.prototype.writeMessage=function(a,b,c){null!=b&&(a=this.beginDelimited_(a),c(b,this),this.endDelimited_(a))};\njspb.BinaryWriter.prototype.writeMessageSet=function(a,b,c){null!=b&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(a),a=this.beginDelimited_(3),c(b,this),this.endDelimited_(a),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))};\njspb.BinaryWriter.prototype.writeGroup=function(a,b,c){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b,this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP))};jspb.BinaryWriter.prototype.writeFixedHash64=function(a,b){null!=b&&(goog.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(b))};\njspb.BinaryWriter.prototype.writeVarintHash64=function(a,b){null!=b&&(goog.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(b))};jspb.BinaryWriter.prototype.writeRepeatedInt32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint32_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt32String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedInt64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt64String(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint32_(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedUint32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint32String(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint64String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedSint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint32_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64String_(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedFixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed32(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed32(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedFloat=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFloat(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedDouble=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeDouble(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedBool=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBool(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedEnum=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeEnum(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedString=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeString(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedBytes=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBytes(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedMessage=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++){var e=this.beginDelimited_(a);c(b[d],this);this.endDelimited_(e)}};\njspb.BinaryWriter.prototype.writeRepeatedGroup=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++)this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b[d],this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP)};jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixedHash64(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeVarintHash64(a,b[c])};jspb.BinaryWriter.prototype.writePackedInt32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedInt32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedInt64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint64(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedInt64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.Int64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedUint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedUint32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedUint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint64(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedUint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.UInt64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint32(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedSint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint64(b[c]);this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint64(parseInt(b[c],10));this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedFixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeUint32(b[a])};jspb.BinaryWriter.prototype.writePackedFixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeUint64(b[a])};\njspb.BinaryWriter.prototype.writePackedFixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++){var c=jspb.arith.UInt64.fromString(b[a]);this.encoder_.writeSplitFixed64(c.lo,c.hi)}};\njspb.BinaryWriter.prototype.writePackedSfixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeInt32(b[a])};jspb.BinaryWriter.prototype.writePackedSfixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64(b[a])};\njspb.BinaryWriter.prototype.writePackedSfixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64String(b[a])};jspb.BinaryWriter.prototype.writePackedFloat=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeFloat(b[a])};\njspb.BinaryWriter.prototype.writePackedDouble=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeDouble(b[a])};jspb.BinaryWriter.prototype.writePackedBool=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),a=0;a<b.length;a++)this.encoder_.writeBool(b[a])};\njspb.BinaryWriter.prototype.writePackedEnum=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeEnum(b[c]);this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedFixedHash64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeFixedHash64(b[a])};\njspb.BinaryWriter.prototype.writePackedVarintHash64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeVarintHash64(b[c]);this.endDelimited_(a)}};jspb.Export={};exports.Map=jspb.Map;exports.Message=jspb.Message;exports.BinaryReader=jspb.BinaryReader;exports.BinaryWriter=jspb.BinaryWriter;exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo;exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo;exports.exportSymbol=goog.exportSymbol;exports.inherits=goog.inherits;exports.object={extend:goog.object.extend};exports.typeOf=goog.typeOf;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://api/./node_modules/google-protobuf/google-protobuf.js?");
  
  /***/ }),
  
  /***/ "./node_modules/grpc-web/index.js":
  /*!****************************************!*\
    !*** ./node_modules/grpc-web/index.js ***!
    \****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/* WEBPACK VAR INJECTION */(function(global) {var aa=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},l=\"undefined\"!=typeof window&&window===this?this:\"undefined\"!=typeof global&&null!=global?global:this;function ba(a){if(a){for(var b=l,c=[\"Promise\"],d=0;d<c.length-1;d++){var e=c[d];e in b||(b[e]={});b=b[e]}c=c[c.length-1];d=b[c];a=a(d);a!=d&&null!=a&&aa(b,c,{configurable:!0,writable:!0,value:a})}}function ca(){ca=function(){};l.Symbol||(l.Symbol=da)}\nvar da=function(){var a=0;return function(b){return\"jscomp_symbol_\"+(b||\"\")+a++}}();function m(){ca();var a=l.Symbol.iterator;a||(a=l.Symbol.iterator=l.Symbol(\"iterator\"));\"function\"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ea(this)}});m=function(){}}function ea(a){var b=0;return fa(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function fa(a){m();a={next:a};a[l.Symbol.iterator]=function(){return this};return a}\nfunction ha(a){m();var b=a[Symbol.iterator];return b?b.call(a):ea(a)}\nba(function(a){function b(a){this.b=0;this.c=void 0;this.a=[];var b=this.f();try{a(b.resolve,b.reject)}catch(k){b.reject(k)}}function c(){this.a=null}function d(a){return a instanceof b?a:new b(function(b){b(a)})}if(a)return a;c.prototype.b=function(a){null==this.a&&(this.a=[],this.f());this.a.push(a)};c.prototype.f=function(){var a=this;this.c(function(){a.h()})};var e=l.setTimeout;c.prototype.c=function(a){e(a,0)};c.prototype.h=function(){for(;this.a&&this.a.length;){var a=this.a;this.a=[];for(var b=\n0;b<a.length;++b){var c=a[b];a[b]=null;try{c()}catch(F){this.g(F)}}}this.a=null};c.prototype.g=function(a){this.c(function(){throw a;})};b.prototype.f=function(){function a(a){return function(d){c||(c=!0,a.call(b,d))}}var b=this,c=!1;return{resolve:a(this.m),reject:a(this.g)}};b.prototype.m=function(a){if(a===this)this.g(new TypeError(\"A Promise cannot resolve to itself\"));else if(a instanceof b)this.o(a);else{a:switch(typeof a){case \"object\":var c=null!=a;break a;case \"function\":c=!0;break a;default:c=\n!1}c?this.l(a):this.h(a)}};b.prototype.l=function(a){var b=void 0;try{b=a.then}catch(k){this.g(k);return}\"function\"==typeof b?this.u(b,a):this.h(a)};b.prototype.g=function(a){this.i(2,a)};b.prototype.h=function(a){this.i(1,a)};b.prototype.i=function(a,b){if(0!=this.b)throw Error(\"Cannot settle(\"+a+\", \"+b+\"): Promise already settled in state\"+this.b);this.b=a;this.c=b;this.j()};b.prototype.j=function(){if(null!=this.a){for(var a=0;a<this.a.length;++a)f.b(this.a[a]);this.a=null}};var f=new c;b.prototype.o=\nfunction(a){var b=this.f();a.w(b.resolve,b.reject)};b.prototype.u=function(a,b){var c=this.f();try{a.call(b,c.resolve,c.reject)}catch(F){c.reject(F)}};b.prototype.then=function(a,c){function d(a,b){return\"function\"==typeof a?function(b){try{e(a(b))}catch(xb){f(xb)}}:b}var e,f,g=new b(function(a,b){e=a;f=b});this.w(d(a,e),d(c,f));return g};b.prototype.catch=function(a){return this.then(void 0,a)};b.prototype.w=function(a,b){function c(){switch(d.b){case 1:a(d.c);break;case 2:b(d.c);break;default:throw Error(\"Unexpected state: \"+\nd.b);}}var d=this;null==this.a?f.b(c):this.a.push(c)};b.resolve=d;b.reject=function(a){return new b(function(b,c){c(a)})};b.race=function(a){return new b(function(b,c){for(var e=ha(a),f=e.next();!f.done;f=e.next())d(f.value).w(b,c)})};b.all=function(a){var c=ha(a),e=c.next();return e.done?d([]):new b(function(a,b){function f(b){return function(c){g[b]=c;h--;0==h&&a(g)}}var g=[],h=0;do g.push(void 0),h++,d(e.value).w(f(g.length-1),b),e=c.next();while(!e.done)})};return b});var n=n||{},p=this;\nfunction q(a){return\"string\"==typeof a}function r(a,b){a=a.split(\".\");b=b||p;for(var c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b}function t(){}\nfunction u(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}function v(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"==b}var ia=\"closure_uid_\"+(1E9*Math.random()>>>0),ja=0;function ka(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction la(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function w(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?w=ka:w=la;return w.apply(null,arguments)}var ma=Date.now||function(){return+new Date};\nfunction x(a,b){function c(){}c.prototype=b.prototype;a.T=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.V=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};function na(a){switch(a){case 0:return\"No Error\";case 1:return\"Access denied to content document\";case 2:return\"File not found\";case 3:return\"Firefox silently errored\";case 4:return\"Application custom error\";case 5:return\"An exception occurred\";case 6:return\"Http response at 400 or 500 level\";case 7:return\"Request was aborted\";case 8:return\"Request timed out\";case 9:return\"The resource is not available offline\";default:return\"Unrecognized error code\"}};function y(a){if(Error.captureStackTrace)Error.captureStackTrace(this,y);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))}x(y,Error);y.prototype.name=\"CustomError\";function oa(a,b){for(var c=a.split(\"%s\"),d=\"\",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join(\"%s\")}var pa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\")};function z(a,b){return a<b?-1:a>b?1:0};function A(a,b){b.unshift(a);y.call(this,oa.apply(null,b));b.shift()}x(A,y);A.prototype.name=\"AssertionError\";function qa(a,b){throw new A(\"Failure\"+(a?\": \"+a:\"\"),Array.prototype.slice.call(arguments,1));};function ra(){this.j=null;this.i=[];this.l=0;this.b=sa;this.f=this.a=this.h=0;this.c=null;this.g=0}var sa=0;function ta(a,b,c,d){a.b=3;a.j=\"The stream is broken @\"+a.l+\"/\"+c+\". Error: \"+d+\". With input:\\n\"+b;throw Error(a.j);}\nfunction ua(a,b){function c(a){0==a?g.h=a:128==a?g.h=a:ta(g,h,k,\"invalid frame byte\");g.b=1;g.a=0;g.f=0}function d(a){g.f++;g.a=(g.a<<8)+a;4==g.f&&(g.b=2,g.g=0,\"undefined\"!==typeof Uint8Array?g.c=new Uint8Array(g.a):g.c=Array(g.a),0==g.a&&f())}function e(a){g.c[g.g++]=a;g.g==g.a&&f()}function f(){var a={};a[g.h]=g.c;g.i.push(a);g.b=sa}for(var g=a,h=b instanceof Array?b:new Uint8Array(b),k=0;k<h.length;){switch(g.b){case 3:ta(g,h,k,\"stream already broken\");break;case sa:c(h[k]);break;case 1:d(h[k]);\nbreak;case 2:e(h[k]);break;default:throw Error(\"unexpected parser state: \"+g.b);}g.l++;k++}a=g.i;g.i=[];return 0<a.length?a:null};var va=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(q(a))return q(b)&&1==b.length?a.indexOf(b,0):-1;for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function wa(a){a:{var b=xa;for(var c=a.length,d=q(a)?a.split(\"\"):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:q(a)?a.charAt(b):a[b]};var B;a:{var ya=p.navigator;if(ya){var za=ya.userAgent;if(za){B=za;break a}}B=\"\"};function Aa(a,b){for(var c in a)b.call(void 0,a[c],c,a)}var Ba=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");function Ca(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<Ba.length;f++)c=Ba[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};function Da(){0!=Ea&&(this[ia]||(this[ia]=++ja));this.G=this.G}var Ea=0;Da.prototype.G=!1;function Fa(a){Fa[\" \"](a);return a}Fa[\" \"]=t;function Ga(a,b){var c=Ha;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var Ia=-1!=B.indexOf(\"Opera\"),C=-1!=B.indexOf(\"Trident\")||-1!=B.indexOf(\"MSIE\"),Ja=-1!=B.indexOf(\"Edge\"),Ka=-1!=B.indexOf(\"Gecko\")&&!(-1!=B.toLowerCase().indexOf(\"webkit\")&&-1==B.indexOf(\"Edge\"))&&!(-1!=B.indexOf(\"Trident\")||-1!=B.indexOf(\"MSIE\"))&&-1==B.indexOf(\"Edge\"),La=-1!=B.toLowerCase().indexOf(\"webkit\")&&-1==B.indexOf(\"Edge\");function Ma(){var a=p.document;return a?a.documentMode:void 0}var D;\na:{var Na=\"\",Oa=function(){var a=B;if(Ka)return/rv:([^\\);]+)(\\)|;)/.exec(a);if(Ja)return/Edge\\/([\\d\\.]+)/.exec(a);if(C)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(La)return/WebKit\\/(\\S+)/.exec(a);if(Ia)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();Oa&&(Na=Oa?Oa[1]:\"\");if(C){var Pa=Ma();if(null!=Pa&&Pa>parseFloat(Na)){D=String(Pa);break a}}D=Na}var Ha={};\nfunction Qa(a){return Ga(a,function(){for(var b=0,c=pa(String(D)).split(\".\"),d=pa(String(a)).split(\".\"),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||\"\",h=d[f]||\"\";do{g=/(\\d*)(\\D*)(.*)/.exec(g)||[\"\",\"\",\"\",\"\"];h=/(\\d*)(\\D*)(.*)/.exec(h)||[\"\",\"\",\"\",\"\"];if(0==g[0].length&&0==h[0].length)break;b=z(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||z(0==g[2].length,0==h[2].length)||z(g[2],h[2]);g=g[3];h=h[3]}while(0==b)}return 0<=b})}var Ra;var Sa=p.document;\nRa=Sa&&C?Ma()||(\"CSS1Compat\"==Sa.compatMode?parseInt(D,10):5):void 0;var Ta=Object.freeze||function(a){return a};var Ua;(Ua=!C)||(Ua=9<=Number(Ra));var Va=Ua,Wa=C&&!Qa(\"9\"),Xa=function(){if(!p.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},\"passive\",{get:function(){a=!0}});p.addEventListener(\"test\",t,b);p.removeEventListener(\"test\",t,b);return a}();function E(a,b){this.type=a;this.a=this.target=b}E.prototype.b=function(){};function G(a,b){E.call(this,a?a.type:\"\");this.relatedTarget=this.a=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key=\"\";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.pointerId=0;this.pointerType=\"\";this.c=null;if(a){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.a=b;if(b=a.relatedTarget){if(Ka){a:{try{Fa(b.nodeName);var e=!0;break a}catch(f){}e=!1}e||(b=null)}}else\"mouseover\"==c?b=a.fromElement:\n\"mouseout\"==c&&(b=a.toElement);this.relatedTarget=b;null===d?(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0):(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.key=a.key||\"\";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;\nthis.pointerId=a.pointerId||0;this.pointerType=q(a.pointerType)?a.pointerType:Ya[a.pointerType]||\"\";this.c=a;a.defaultPrevented&&this.b()}}x(G,E);var Ya=Ta({2:\"touch\",3:\"pen\",4:\"mouse\"});G.prototype.b=function(){G.T.b.call(this);var a=this.c;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Wa)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var H=\"closure_listenable_\"+(1E6*Math.random()|0),Za=0;function $a(a,b,c,d,e){this.listener=a;this.proxy=null;this.src=b;this.type=c;this.capture=!!d;this.A=e;this.key=++Za;this.s=this.v=!1}function ab(a){a.s=!0;a.listener=null;a.proxy=null;a.src=null;a.A=null};function I(a){this.src=a;this.a={};this.b=0}I.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.a[f];a||(a=this.a[f]=[],this.b++);var g=bb(a,b,d,e);-1<g?(b=a[g],c||(b.v=!1)):(b=new $a(b,this.src,f,!!d,e),b.v=c,a.push(b));return b};function cb(a,b){var c=b.type;if(c in a.a){var d=a.a[c],e=va(d,b),f;(f=0<=e)&&Array.prototype.splice.call(d,e,1);f&&(ab(b),0==a.a[c].length&&(delete a.a[c],a.b--))}}\nfunction bb(a,b,c,d){for(var e=0;e<a.length;++e){var f=a[e];if(!f.s&&f.listener==b&&f.capture==!!c&&f.A==d)return e}return-1};var db=\"closure_lm_\"+(1E6*Math.random()|0),eb={},fb=0;function gb(a,b,c,d,e){if(d&&d.once)hb(a,b,c,d,e);else if(\"array\"==u(b))for(var f=0;f<b.length;f++)gb(a,b[f],c,d,e);else c=ib(c),a&&a[H]?a.f.add(String(b),c,!1,v(d)?!!d.capture:!!d,e):jb(a,b,c,!1,d,e)}\nfunction jb(a,b,c,d,e,f){if(!b)throw Error(\"Invalid event type\");var g=v(e)?!!e.capture:!!e,h=J(a);h||(a[db]=h=new I(a));c=h.add(b,c,d,g,f);if(!c.proxy){d=kb();c.proxy=d;d.src=a;d.listener=c;if(a.addEventListener)Xa||(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(lb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error(\"addEventListener and attachEvent are unavailable.\");fb++}}\nfunction kb(){var a=mb,b=Va?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b}function hb(a,b,c,d,e){if(\"array\"==u(b))for(var f=0;f<b.length;f++)hb(a,b[f],c,d,e);else c=ib(c),a&&a[H]?a.f.add(String(b),c,!0,v(d)?!!d.capture:!!d,e):jb(a,b,c,!0,d,e)}\nfunction nb(a,b,c,d,e){if(\"array\"==u(b))for(var f=0;f<b.length;f++)nb(a,b[f],c,d,e);else(d=v(d)?!!d.capture:!!d,c=ib(c),a&&a[H])?(a=a.f,b=String(b).toString(),b in a.a&&(f=a.a[b],c=bb(f,c,d,e),-1<c&&(ab(f[c]),Array.prototype.splice.call(f,c,1),0==f.length&&(delete a.a[b],a.b--)))):a&&(a=J(a))&&(b=a.a[b.toString()],a=-1,b&&(a=bb(b,c,d,e)),(c=-1<a?b[a]:null)&&ob(c))}\nfunction ob(a){if(\"number\"!=typeof a&&a&&!a.s){var b=a.src;if(b&&b[H])cb(b.f,a);else{var c=a.type,d=a.proxy;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(lb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);fb--;(c=J(b))?(cb(c,a),0==c.b&&(c.src=null,b[db]=null)):ab(a)}}}function lb(a){return a in eb?eb[a]:eb[a]=\"on\"+a}\nfunction pb(a,b,c,d){var e=!0;if(a=J(a))if(b=a.a[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.s&&(f=qb(f,d),e=e&&!1!==f)}return e}function qb(a,b){var c=a.listener,d=a.A||a.src;a.v&&ob(a);return c.call(d,b)}\nfunction mb(a,b){if(a.s)return!0;if(!Va){var c=b||r(\"window.event\");b=new G(c,this);var d=!0;if(!(0>c.keyCode||void 0!=c.returnValue)){a:{var e=!1;if(0==c.keyCode)try{c.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==c.returnValue)c.returnValue=!0}c=[];for(e=b.a;e;e=e.parentNode)c.push(e);a=a.type;for(e=c.length-1;0<=e;e--){b.a=c[e];var f=pb(c[e],a,!0,b);d=d&&f}for(e=0;e<c.length;e++)b.a=c[e],f=pb(c[e],a,!1,b),d=d&&f}return d}return qb(a,new G(b,this))}\nfunction J(a){a=a[db];return a instanceof I?a:null}var rb=\"__closure_events_fn_\"+(1E9*Math.random()>>>0);function ib(a){if(\"function\"==u(a))return a;a[rb]||(a[rb]=function(b){return a.handleEvent(b)});return a[rb]};function K(){Da.call(this);this.f=new I(this);this.P=this}x(K,Da);K.prototype[H]=!0;K.prototype.removeEventListener=function(a,b,c,d){nb(this,a,b,c,d)};function L(a,b){a=a.P;var c=b.type||b;if(q(b))b=new E(b,a);else if(b instanceof E)b.target=b.target||a;else{var d=b;b=new E(c,a);Ca(b,d)}a=b.a=a;sb(a,c,!0,b);sb(a,c,!1,b)}\nfunction sb(a,b,c,d){if(b=a.f.a[String(b)]){b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.s&&g.capture==c){var h=g.listener,k=g.A||g.src;g.v&&cb(a.f,g);e=!1!==h.call(k,d)&&e}}}};function tb(a,b,c){if(\"function\"==u(a))c&&(a=w(a,c));else if(a&&\"function\"==typeof a.handleEvent)a=w(a.handleEvent,a);else throw Error(\"Invalid listener argument\");return 2147483647<Number(b)?-1:p.setTimeout(a,b||0)};function ub(a,b,c){this.reset(a,b,c,void 0,void 0)}ub.prototype.a=null;var vb=0;ub.prototype.reset=function(a,b,c,d,e){\"number\"==typeof e||vb++;d||ma();delete this.a};function wb(a){this.f=a;this.b=this.c=this.a=null}function M(a,b){this.name=a;this.value=b}M.prototype.toString=function(){return this.name};var yb=new M(\"SEVERE\",1E3),zb=new M(\"CONFIG\",700),Ab=new M(\"FINE\",500);function Bb(a){if(a.c)return a.c;if(a.a)return Bb(a.a);qa(\"Root logger has no level set.\");return null}wb.prototype.log=function(a,b,c){if(a.value>=Bb(this).value)for(\"function\"==u(b)&&(b=b()),a=new ub(a,String(b),this.f),c&&(a.a=c),c=this;c;)c=c.a};var Cb={},N=null;\nfunction Db(a){N||(N=new wb(\"\"),Cb[\"\"]=N,N.c=zb);var b;if(!(b=Cb[a])){b=new wb(a);var c=a.lastIndexOf(\".\"),d=a.substr(c+1);c=Db(a.substr(0,c));c.b||(c.b={});c.b[d]=b;b.a=c;Cb[a]=b}return b};function O(a,b){a&&a.log(Ab,b,void 0)};function Eb(){}Eb.prototype.a=null;function Fb(a){var b;(b=a.a)||(b={},Gb(a)&&(b[0]=!0,b[1]=!0),b=a.a=b);return b};var Hb;function Ib(){}x(Ib,Eb);function Jb(a){return(a=Gb(a))?new ActiveXObject(a):new XMLHttpRequest}function Gb(a){if(!a.b&&\"undefined\"==typeof XMLHttpRequest&&\"undefined\"!=typeof ActiveXObject){for(var b=[\"MSXML2.XMLHTTP.6.0\",\"MSXML2.XMLHTTP.3.0\",\"MSXML2.XMLHTTP\",\"Microsoft.XMLHTTP\"],c=0;c<b.length;c++){var d=b[c];try{return new ActiveXObject(d),a.b=d}catch(e){}}throw Error(\"Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed\");}return a.b}Hb=new Ib;function P(a,b){this.b={};this.a=[];this.c=0;var c=arguments.length;if(1<c){if(c%2)throw Error(\"Uneven number of arguments\");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&Kb(this,a)}P.prototype.g=function(){Q(this);for(var a=[],b=0;b<this.a.length;b++)a.push(this.b[this.a[b]]);return a};P.prototype.f=function(){Q(this);return this.a.concat()};function Lb(a){a.b={};a.a.length=0;a.c=0}\nfunction Q(a){if(a.c!=a.a.length){for(var b=0,c=0;b<a.a.length;){var d=a.a[b];R(a.b,d)&&(a.a[c++]=d);b++}a.a.length=c}if(a.c!=a.a.length){var e={};for(c=b=0;b<a.a.length;)d=a.a[b],R(e,d)||(a.a[c++]=d,e[d]=1),b++;a.a.length=c}}P.prototype.get=function(a,b){return R(this.b,a)?this.b[a]:b};P.prototype.set=function(a,b){R(this.b,a)||(this.c++,this.a.push(a));this.b[a]=b};\nfunction Kb(a,b){if(b instanceof P){var c=b.f();b=b.g()}else{c=[];var d=0;for(e in b)c[d++]=e;d=[];var e=0;for(var f in b)d[e++]=b[f];b=d}for(f=0;f<c.length;f++)a.set(c[f],b[f])}P.prototype.forEach=function(a,b){for(var c=this.f(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};function Mb(a){Q(a);for(var b={},c=0;c<a.a.length;c++){var d=a.a[c];b[d]=a.b[d]}return b}function R(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var Nb=/^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;function S(a){K.call(this);this.headers=new P;this.F=a||null;this.c=!1;this.D=this.a=null;this.J=this.o=\"\";this.g=0;this.j=\"\";this.i=this.I=this.m=this.H=!1;this.l=0;this.u=null;this.h=Ob;this.C=this.M=!1}x(S,K);var Ob=\"\",Pb=S.prototype,Qb=Db(\"goog.net.XhrIo\");Pb.b=Qb;var Rb=/^https?$/i,Sb=[\"POST\",\"PUT\"];\nfunction Tb(a,b,c){if(a.a)throw Error(\"[goog.net.XhrIo] Object is active with another request=\"+a.o+\"; newUri=\"+b);a.o=b;a.j=\"\";a.g=0;a.J=\"POST\";a.H=!1;a.c=!0;a.a=a.F?Jb(a.F):Jb(Hb);a.D=a.F?Fb(a.F):Fb(Hb);a.a.onreadystatechange=w(a.K,a);try{O(a.b,T(a,\"Opening Xhr\")),a.I=!0,a.a.open(\"POST\",String(b),!0),a.I=!1}catch(f){O(a.b,T(a,\"Error opening Xhr: \"+f.message));Ub(a,f);return}b=c||\"\";c=new P(a.headers);var d=wa(c.f()),e=p.FormData&&b instanceof p.FormData;!(0<=va(Sb,\"POST\"))||d||e||c.set(\"Content-Type\",\n\"application/x-www-form-urlencoded;charset=utf-8\");c.forEach(function(a,b){this.a.setRequestHeader(b,a)},a);a.h&&(a.a.responseType=a.h);\"withCredentials\"in a.a&&a.a.withCredentials!==a.M&&(a.a.withCredentials=a.M);try{Vb(a),0<a.l&&(a.C=Wb(a.a),O(a.b,T(a,\"Will abort after \"+a.l+\"ms if incomplete, xhr2 \"+a.C)),a.C?(a.a.timeout=a.l,a.a.ontimeout=w(a.L,a)):a.u=tb(a.L,a.l,a)),O(a.b,T(a,\"Sending request\")),a.m=!0,a.a.send(b),a.m=!1}catch(f){O(a.b,T(a,\"Send error: \"+f.message)),Ub(a,f)}}\nfunction Wb(a){return C&&Qa(9)&&\"number\"==typeof a.timeout&&void 0!==a.ontimeout}function xa(a){return\"content-type\"==a.toLowerCase()}S.prototype.L=function(){\"undefined\"!=typeof n&&this.a&&(this.j=\"Timed out after \"+this.l+\"ms, aborting\",this.g=8,O(this.b,T(this,this.j)),L(this,\"timeout\"),this.abort(8))};function Ub(a,b){a.c=!1;a.a&&(a.i=!0,a.a.abort(),a.i=!1);a.j=b;a.g=5;Xb(a);Yb(a)}function Xb(a){a.H||(a.H=!0,L(a,\"complete\"),L(a,\"error\"))}\nS.prototype.abort=function(a){this.a&&this.c&&(O(this.b,T(this,\"Aborting\")),this.c=!1,this.i=!0,this.a.abort(),this.i=!1,this.g=a||7,L(this,\"complete\"),L(this,\"abort\"),Yb(this))};S.prototype.K=function(){this.G||(this.I||this.m||this.i?Zb(this):this.R())};S.prototype.R=function(){Zb(this)};\nfunction Zb(a){if(a.c&&\"undefined\"!=typeof n)if(a.D[1]&&4==U(a)&&2==V(a))O(a.b,T(a,\"Local request error detected and ignored\"));else if(a.m&&4==U(a))tb(a.K,0,a);else if(L(a,\"readystatechange\"),4==U(a)){O(a.b,T(a,\"Request complete\"));a.c=!1;try{var b=V(a);a:switch(b){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var c=!0;break a;default:c=!1}var d;if(!(d=c)){var e;if(e=0===b){var f=String(a.o).match(Nb)[1]||null;if(!f&&p.self&&p.self.location){var g=p.self.location.protocol;f=g.substr(0,\ng.length-1)}e=!Rb.test(f?f.toLowerCase():\"\")}d=e}if(d)L(a,\"complete\"),L(a,\"success\");else{a.g=6;try{var h=2<U(a)?a.a.statusText:\"\"}catch(k){O(a.b,\"Can not get status: \"+k.message),h=\"\"}a.j=h+\" [\"+V(a)+\"]\";Xb(a)}}finally{Yb(a)}}}function Yb(a){if(a.a){Vb(a);var b=a.a,c=a.D[0]?t:null;a.a=null;a.D=null;L(a,\"ready\");try{b.onreadystatechange=c}catch(d){(a=a.b)&&a.log(yb,\"Problem encountered resetting onreadystatechange: \"+d.message,void 0)}}}\nfunction Vb(a){a.a&&a.C&&(a.a.ontimeout=null);a.u&&(p.clearTimeout(a.u),a.u=null)}function U(a){return a.a?a.a.readyState:0}function V(a){try{return 2<U(a)?a.a.status:-1}catch(b){return-1}}\nfunction $b(a){try{if(!a.a)return null;if(\"response\"in a.a)return a.a.response;switch(a.h){case Ob:case \"text\":return a.a.responseText;case \"arraybuffer\":if(\"mozResponseArrayBuffer\"in a.a)return a.a.mozResponseArrayBuffer}var b=a.b;b&&b.log(yb,\"Response type \"+a.h+\" is not supported on this browser\",void 0);return null}catch(c){return O(a.b,\"Can not get response: \"+c.message),null}}function ac(a,b){if(a.a&&4==U(a))return a=a.a.getResponseHeader(b),null===a?void 0:a}\nfunction bc(a,b){return a.a?a.a.getResponseHeader(b):null}function T(a,b){return b+\" [\"+a.J+\" \"+a.o+\" \"+V(a)+\"]\"};var W=null,X=null;function cc(a){dc();for(var b=W,c=[],d=0;d<a.length;d+=3){var e=a[d],f=d+1<a.length,g=f?a[d+1]:0,h=d+2<a.length,k=h?a[d+2]:0,F=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|k>>6;k&=63;h||(k=64,f||(g=64));c.push(b[F],b[e],b[g],b[k])}return c.join(\"\")}function ec(a){var b=a.length,c=0;\"=\"===a[b-2]?c=2:\"=\"===a[b-1]&&(c=1);var d=new Uint8Array(Math.ceil(3*b/4)-c),e=0;fc(a,function(a){d[e++]=a});return d.subarray(0,e)}\nfunction fc(a,b){function c(b){for(;d<a.length;){var c=a.charAt(d++),e=X[c];if(null!=e)return e;if(!/^[\\s\\xa0]*$/.test(c))throw Error(\"Unknown base64 encoding at char: \"+c);}return b}dc();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}}\nfunction dc(){if(!W){W={};X={};for(var a=0;65>a;a++)W[a]=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".charAt(a),X[W[a]]=a,62<=a&&(X[\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.\".charAt(a)]=a)}};function Y(a){this.a=a.O;this.f=this.c=this.b=this.i=this.h=null;this.g=0;this.j=new ra;var b=this;gb(this.a,\"readystatechange\",function(){var a=bc(b.a,\"Content-Type\");if(a){a=a.toLowerCase();var d=bc(b.a,\"grpc-status\"),e=bc(b.a,\"grpc-message\");d&&b.b&&b.b({code:Number(d),details:e||\"\",metadata:void 0});if(0==a.lastIndexOf(\"application/grpc-web-text\",0)){a=b.a;try{var f=a.a?a.a.responseText:\"\"}catch(k){O(a.b,\"Can not get responseText: \"+k.message),f=\"\"}a=f.length-f.length%4;f=f.substr(b.g,a-b.g);\nif(0==f.length)return;b.g=a;f=ec(f)}else if(0==a.lastIndexOf(\"application/grpc\",0))f=new Uint8Array($b(b.a));else return;if(f=ua(b.j,[].slice.call(f)))for(a=0;a<f.length;a++)if(0 in f[a]&&(d=f[a][0])&&(d=b.h(d))&&b.i(d),128 in f[a]&&0<f[a][128].length){d=\"\";for(e=0;e<f[a][128].length;e++)d+=String.fromCharCode(f[a][128][e]);var g;d=d.trim().split(\"\\r\\n\");e={};for(g=0;g<d.length;g++){var h=d[g].indexOf(\":\");e[d[g].substring(0,h).trim()]=d[g].substring(h+1).trim()}g=e;d=0;e=\"\";\"grpc-status\"in g&&(d=\ng[\"grpc-status\"]);\"grpc-message\"in g&&(e=g[\"grpc-message\"]);b.b&&b.b({code:Number(d),details:e,metadata:g})}4==U(b.a)&&b.f&&b.f()}});gb(this.a,\"complete\",function(){if(b.c){var a=b.a.g;if(0!=a)b.c({code:14,message:na(a)});else{a={};var d=b.a;d=(d.a&&4==U(d)?d.a.getAllResponseHeaders():\"\").split(\"\\r\\n\");for(var e=0;e<d.length;e++)if(!/^[\\s\\xa0]*$/.test(d[e])){var f=2;for(var g=d[e].split(\": \"),h=[];0<f&&g.length;)h.push(g.shift()),f--;g.length&&h.push(g.join(\": \"));f=h;a[f[0]]=a[f[0]]?a[f[0]]+(\", \"+\nf[1]):f[1]}\"grpc-status\"in a&&0!=Number(ac(b.a,\"grpc-status\"))&&b.c({code:Number(ac(b.a,\"grpc-status\")),message:ac(b.a,\"grpc-message\")})}}})}Y.prototype.B=function(a,b){\"data\"==a?this.i=b:\"status\"==a?this.b=b:\"end\"==a?this.f=b:\"error\"==a&&(this.c=b);return this};Y.prototype.on=Y.prototype.B;Y.prototype.cancel=function(){this.a.abort()};Y.prototype.cancel=Y.prototype.cancel;function gc(a){var b=\"\";Aa(a,function(a,d){b+=d;b+=\":\";b+=a;b+=\"\\r\\n\"});return b}function hc(a,b){a:{for(c in b){var c=!1;break a}c=!0}if(c)return a;c=gc(b);if(q(a)){b=encodeURIComponent(\"$httpHeaders\");c=null!=c?\"=\"+encodeURIComponent(String(c)):\"\";if(b+=c){c=a.indexOf(\"#\");0>c&&(c=a.length);var d=a.indexOf(\"?\");if(0>d||d>c){d=c;var e=\"\"}else e=a.substring(d+1,c);a=[a.substr(0,d),e,a.substr(c)];c=a[1];a[1]=b?c?c+\"&\"+b:b:c;a=a[0]+(a[1]?\"?\"+a[1]:\"\")+a[2]}return a}a.a(\"$httpHeaders\",c);return a};function Z(a){this.a=r(\"format\",a)||\"text\";this.b=r(\"suppressCorsPreflight\",a)||!1}\nZ.prototype.N=function(a,b,c,d,e){var f=new S,g=new Y({O:f});g.h=d.b;g.B(\"data\",function(a){e(null,a)});g.B(\"status\",function(a){0!=a.code&&e({code:a.code,message:a.details},null)});g.B(\"error\",function(a){0!=a.code&&e({code:a.code,message:a.message},null)});Kb(f.headers,c);ic(this,f);this.b&&(c=Mb(f.headers),Lb(f.headers),a=hc(a,c));b=d.a(b);b=jc(b);\"text\"==this.a?b=cc(b):\"binary\"==this.a&&(f.h=\"arraybuffer\");Tb(f,a,b);return g};Z.prototype.rpcCall=Z.prototype.N;\nZ.prototype.U=function(a,b,c,d){var e=this;return new Promise(function(f,g){e.N(a,b,c,d,function(a,b){a?g(a):f(b)})})};Z.prototype.unaryCall=Z.prototype.U;Z.prototype.S=function(a,b,c,d){var e=new S,f=new Y({O:e});f.h=d.b;Kb(e.headers,c);ic(this,e);this.b&&(c=Mb(e.headers),Lb(e.headers),a=hc(a,c));b=d.a(b);b=jc(b);\"text\"==this.a?b=cc(b):\"binary\"==this.a&&(e.h=\"arraybuffer\");Tb(e,a,b);return f};Z.prototype.serverStreaming=Z.prototype.S;\nfunction jc(a){for(var b=a.length,c=[0,0,0,0],d=new Uint8Array(5+b),e=3;0<=e;e--)c[e]=b%256,b>>>=8;d.set(new Uint8Array(c),1);d.set(a,5);return d}\nfunction ic(a,b){\"text\"==a.a?(b.headers.set(\"Content-Type\",\"application/grpc-web-text\"),b.headers.set(\"Accept\",\"application/grpc-web-text\")):b.headers.set(\"Content-Type\",\"application/grpc-web+proto\");b.headers.set(\"X-User-Agent\",\"grpc-web-javascript/0.1\");b.headers.set(\"X-Grpc-Web\",\"1\");if(R(b.headers.b,\"deadline\")){a=b.headers.get(\"deadline\");a=Math.round(a-(new Date).getTime());var c=b.headers;R(c.b,\"deadline\")&&(delete c.b.deadline,c.c--,c.a.length>2*c.c&&Q(c));0<a&&b.headers.set(\"grpc-timeout\",\na+\"m\")}};var kc=module.exports;kc.AbstractClientBase={MethodInfo:function(a,b,c){this.a=b;this.b=c}};kc.GrpcWebClientBase=Z;kc.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://api/./node_modules/grpc-web/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/ieee754/index.js":
  /*!***************************************!*\
    !*** ./node_modules/ieee754/index.js ***!
    \***************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack://api/./node_modules/ieee754/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/isarray/index.js":
  /*!***************************************!*\
    !*** ./node_modules/isarray/index.js ***!
    \***************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://api/./node_modules/isarray/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***!
    \*********************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://api/./node_modules/node-libs-browser/node_modules/buffer/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/webpack/buildin/global.js":
  /*!***********************************!*\
    !*** (webpack)/buildin/global.js ***!
    \***********************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack://api/(webpack)/buildin/global.js?");
  
  /***/ }),
  
  /***/ "./system_api_grpc_web_pb.js":
  /*!***********************************!*\
    !*** ./system_api_grpc_web_pb.js ***!
    \***********************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview gRPC-Web generated client stub for base\r\n * @enhanceable\r\n * @public\r\n */\r\n\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\n\r\n\r\nconst grpc = {};\r\ngrpc.web = __webpack_require__(/*! grpc-web */ \"./node_modules/grpc-web/index.js\");\r\n\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\")\r\nconst proto = {};\r\nproto.base = __webpack_require__(/*! ./system_api_pb.js */ \"./system_api_pb.js\");\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.SystemServiceClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!grpc.web.GrpcWebClientBase} The client\r\n   */\r\n  this.client_ = new grpc.web.GrpcWebClientBase(options);\r\n\r\n  /**\r\n   * @private @const {string} The hostname\r\n   */\r\n  this.hostname_ = hostname;\r\n\r\n  /**\r\n   * @private @const {?Object} The credentials to be used to connect\r\n   *    to the server\r\n   */\r\n  this.credentials_ = credentials;\r\n\r\n  /**\r\n   * @private @const {?Object} Options for the client\r\n   */\r\n  this.options_ = options;\r\n};\r\n\r\n\r\n/**\r\n * @param {string} hostname\r\n * @param {?Object} credentials\r\n * @param {?Object} options\r\n * @constructor\r\n * @struct\r\n * @final\r\n */\r\nproto.base.SystemServicePromiseClient =\r\n    function(hostname, credentials, options) {\r\n  if (!options) options = {};\r\n  options['format'] = 'text';\r\n\r\n  /**\r\n   * @private @const {!proto.base.SystemServiceClient} The delegate callback based client\r\n   */\r\n  this.delegateClient_ = new proto.base.SystemServiceClient(\r\n      hostname, credentials, options);\r\n\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.Empty,\r\n *   !proto.base.Configuration>}\r\n */\r\nconst methodInfo_SystemService_GetConfiguration = new grpc.web.AbstractClientBase.MethodInfo(\r\n  common_pb.Configuration,\r\n  /** @param {!proto.base.Empty} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  common_pb.Configuration.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.Empty} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @param {function(?grpc.web.Error, ?proto.base.Configuration)}\r\n *     callback The callback function(error, response)\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Configuration>|undefined}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.SystemServiceClient.prototype.getConfiguration =\r\n    function(request, metadata, callback) {\r\n  return this.client_.rpcCall(this.hostname_ +\r\n      '/base.SystemService/GetConfiguration',\r\n      request,\r\n      metadata || {},\r\n      methodInfo_SystemService_GetConfiguration,\r\n      callback);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.Empty} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!Promise<!proto.base.Configuration>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.SystemServicePromiseClient.prototype.getConfiguration =\r\n    function(request, metadata) {\r\n  var _this = this;\r\n  return new Promise(function (resolve, reject) {\r\n    _this.delegateClient_.getConfiguration(\r\n      request, metadata, function (error, response) {\r\n        error ? reject(error) : resolve(response);\r\n      });\r\n  });\r\n};\r\n\r\n\r\n/**\r\n * @const\r\n * @type {!grpc.web.AbstractClientBase.MethodInfo<\r\n *   !proto.base.NameSpace,\r\n *   !proto.base.Frames>}\r\n */\r\nconst methodInfo_SystemService_ListSignals = new grpc.web.AbstractClientBase.MethodInfo(\r\n  common_pb.Frames,\r\n  /** @param {!proto.base.NameSpace} request */\r\n  function(request) {\r\n    return request.serializeBinary();\r\n  },\r\n  common_pb.Frames.deserializeBinary\r\n);\r\n\r\n\r\n/**\r\n * @param {!proto.base.NameSpace} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @param {function(?grpc.web.Error, ?proto.base.Frames)}\r\n *     callback The callback function(error, response)\r\n * @return {!grpc.web.ClientReadableStream<!proto.base.Frames>|undefined}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.SystemServiceClient.prototype.listSignals =\r\n    function(request, metadata, callback) {\r\n  return this.client_.rpcCall(this.hostname_ +\r\n      '/base.SystemService/ListSignals',\r\n      request,\r\n      metadata || {},\r\n      methodInfo_SystemService_ListSignals,\r\n      callback);\r\n};\r\n\r\n\r\n/**\r\n * @param {!proto.base.NameSpace} request The\r\n *     request proto\r\n * @param {?Object<string, string>} metadata User defined\r\n *     call metadata\r\n * @return {!Promise<!proto.base.Frames>}\r\n *     The XHR Node Readable Stream\r\n */\r\nproto.base.SystemServicePromiseClient.prototype.listSignals =\r\n    function(request, metadata) {\r\n  var _this = this;\r\n  return new Promise(function (resolve, reject) {\r\n    _this.delegateClient_.listSignals(\r\n      request, metadata, function (error, response) {\r\n        error ? reject(error) : resolve(response);\r\n      });\r\n  });\r\n};\r\n\r\n\r\nmodule.exports = proto.base;\r\n\r\n\n\n//# sourceURL=webpack://api/./system_api_grpc_web_pb.js?");
  
  /***/ }),
  
  /***/ "./system_api_pb.js":
  /*!**************************!*\
    !*** ./system_api_pb.js ***!
    \**************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\r\n * @fileoverview\r\n * @enhanceable\r\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\r\n *     field starts with 'MSG_' and isn't a translatable message.\r\n * @public\r\n */\r\n// GENERATED CODE -- DO NOT EDIT!\r\n\r\nvar jspb = __webpack_require__(/*! google-protobuf */ \"./node_modules/google-protobuf/google-protobuf.js\");\r\nvar goog = jspb;\r\nvar global = Function('return this')();\r\n\r\nvar common_pb = __webpack_require__(/*! ./common_pb.js */ \"./common_pb.js\");\r\ngoog.object.extend(exports, proto.base);\r\n\n\n//# sourceURL=webpack://api/./system_api_pb.js?");
  
  /***/ })
  
  /******/ });
  });