// source: bugs.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global =
    (typeof globalThis !== 'undefined' && globalThis) ||
    (typeof window !== 'undefined' && window) ||
    (typeof global !== 'undefined' && global) ||
    (typeof self !== 'undefined' && self) ||
    (function () { return this; }).call(null) ||
    Function('return this')();

var google_api_annotations_pb = require('./google/api/annotations_pb.js');
goog.object.extend(proto, google_api_annotations_pb);
var google_api_httpbody_pb = require('./google/api/httpbody_pb.js');
goog.object.extend(proto, google_api_httpbody_pb);
var google_protobuf_duration_pb = require('google-protobuf/google/protobuf/duration_pb.js');
goog.object.extend(proto, google_protobuf_duration_pb);
var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
goog.object.extend(proto, google_protobuf_empty_pb);
var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');
goog.object.extend(proto, google_protobuf_struct_pb);
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
var annotations_pb = require('./annotations_pb.js');
goog.object.extend(proto, annotations_pb);
goog.exportSymbol('proto.org.couchers.bugs.CheckNativeStatusReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.CheckNativeStatusRes', null, global);
goog.exportSymbol('proto.org.couchers.bugs.DiagnosticInfo', null, global);
goog.exportSymbol('proto.org.couchers.bugs.EvaluateFeatureFlagReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.EvaluateFeatureFlagRes', null, global);
goog.exportSymbol('proto.org.couchers.bugs.GeolocationClickInfoReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.GeolocationSearchInfoReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.LogExperimentExposureReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.NativeUpdateAction', null, global);
goog.exportSymbol('proto.org.couchers.bugs.NativeUpdateCause', null, global);
goog.exportSymbol('proto.org.couchers.bugs.NativeUpdateInfo', null, global);
goog.exportSymbol('proto.org.couchers.bugs.ReportBugReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.ReportBugRes', null, global);
goog.exportSymbol('proto.org.couchers.bugs.ReportDiagnosticsReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.ScreenResolution', null, global);
goog.exportSymbol('proto.org.couchers.bugs.StatusReq', null, global);
goog.exportSymbol('proto.org.couchers.bugs.StatusRes', null, global);
goog.exportSymbol('proto.org.couchers.bugs.VersionInfo', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.VersionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.VersionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.VersionInfo.displayName = 'proto.org.couchers.bugs.VersionInfo';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.ScreenResolution = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.ScreenResolution, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.ScreenResolution.displayName = 'proto.org.couchers.bugs.ScreenResolution';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.ReportBugReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.ReportBugReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.ReportBugReq.displayName = 'proto.org.couchers.bugs.ReportBugReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.ReportBugRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.ReportBugRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.ReportBugRes.displayName = 'proto.org.couchers.bugs.ReportBugRes';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.StatusReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.StatusReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.StatusReq.displayName = 'proto.org.couchers.bugs.StatusReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.StatusRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.StatusRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.StatusRes.displayName = 'proto.org.couchers.bugs.StatusRes';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.GeolocationSearchInfoReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.GeolocationSearchInfoReq.displayName = 'proto.org.couchers.bugs.GeolocationSearchInfoReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.GeolocationClickInfoReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.GeolocationClickInfoReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.GeolocationClickInfoReq.displayName = 'proto.org.couchers.bugs.GeolocationClickInfoReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.DiagnosticInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.DiagnosticInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.DiagnosticInfo.displayName = 'proto.org.couchers.bugs.DiagnosticInfo';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.ReportDiagnosticsReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.org.couchers.bugs.ReportDiagnosticsReq.repeatedFields_, null);
};
goog.inherits(proto.org.couchers.bugs.ReportDiagnosticsReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.ReportDiagnosticsReq.displayName = 'proto.org.couchers.bugs.ReportDiagnosticsReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.CheckNativeStatusReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.CheckNativeStatusReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.CheckNativeStatusReq.displayName = 'proto.org.couchers.bugs.CheckNativeStatusReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.NativeUpdateInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.NativeUpdateInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.NativeUpdateInfo.displayName = 'proto.org.couchers.bugs.NativeUpdateInfo';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.CheckNativeStatusRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.CheckNativeStatusRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.CheckNativeStatusRes.displayName = 'proto.org.couchers.bugs.CheckNativeStatusRes';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.EvaluateFeatureFlagReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.EvaluateFeatureFlagReq.displayName = 'proto.org.couchers.bugs.EvaluateFeatureFlagReq';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.EvaluateFeatureFlagRes, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.EvaluateFeatureFlagRes.displayName = 'proto.org.couchers.bugs.EvaluateFeatureFlagRes';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.org.couchers.bugs.LogExperimentExposureReq = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.org.couchers.bugs.LogExperimentExposureReq, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.org.couchers.bugs.LogExperimentExposureReq.displayName = 'proto.org.couchers.bugs.LogExperimentExposureReq';
}



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.VersionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.VersionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.VersionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.VersionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    version: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.VersionInfo}
 */
proto.org.couchers.bugs.VersionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.VersionInfo;
  return proto.org.couchers.bugs.VersionInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.VersionInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.VersionInfo}
 */
proto.org.couchers.bugs.VersionInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setVersion(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.VersionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.VersionInfo.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.VersionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.VersionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getVersion();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string version = 1;
 * @return {string}
 */
proto.org.couchers.bugs.VersionInfo.prototype.getVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.VersionInfo} returns this
 */
proto.org.couchers.bugs.VersionInfo.prototype.setVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.ScreenResolution.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.ScreenResolution.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.ScreenResolution} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ScreenResolution.toObject = function(includeInstance, msg) {
  var f, obj = {
    width: jspb.Message.getFieldWithDefault(msg, 1, 0),
    height: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.ScreenResolution}
 */
proto.org.couchers.bugs.ScreenResolution.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.ScreenResolution;
  return proto.org.couchers.bugs.ScreenResolution.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.ScreenResolution} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.ScreenResolution}
 */
proto.org.couchers.bugs.ScreenResolution.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setWidth(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setHeight(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.ScreenResolution.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.ScreenResolution.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.ScreenResolution} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ScreenResolution.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getWidth();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getHeight();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
};


/**
 * optional int32 width = 1;
 * @return {number}
 */
proto.org.couchers.bugs.ScreenResolution.prototype.getWidth = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.ScreenResolution} returns this
 */
proto.org.couchers.bugs.ScreenResolution.prototype.setWidth = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int32 height = 2;
 * @return {number}
 */
proto.org.couchers.bugs.ScreenResolution.prototype.getHeight = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.ScreenResolution} returns this
 */
proto.org.couchers.bugs.ScreenResolution.prototype.setHeight = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.ReportBugReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.ReportBugReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportBugReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    subject: jspb.Message.getFieldWithDefault(msg, 1, ""),
    description: jspb.Message.getFieldWithDefault(msg, 2, ""),
    results: jspb.Message.getFieldWithDefault(msg, 4, ""),
    frontendVersion: jspb.Message.getFieldWithDefault(msg, 5, ""),
    userAgent: jspb.Message.getFieldWithDefault(msg, 6, ""),
    page: jspb.Message.getFieldWithDefault(msg, 7, ""),
    screenResolution: (f = msg.getScreenResolution()) && proto.org.couchers.bugs.ScreenResolution.toObject(includeInstance, f),
    sentryReplayId: jspb.Message.getFieldWithDefault(msg, 9, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.ReportBugReq}
 */
proto.org.couchers.bugs.ReportBugReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.ReportBugReq;
  return proto.org.couchers.bugs.ReportBugReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.ReportBugReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.ReportBugReq}
 */
proto.org.couchers.bugs.ReportBugReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSubject(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setResults(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setFrontendVersion(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserAgent(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setPage(value);
      break;
    case 8:
      var value = new proto.org.couchers.bugs.ScreenResolution;
      reader.readMessage(value,proto.org.couchers.bugs.ScreenResolution.deserializeBinaryFromReader);
      msg.setScreenResolution(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setSentryReplayId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.ReportBugReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.ReportBugReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportBugReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSubject();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getDescription();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getResults();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getFrontendVersion();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getUserAgent();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getPage();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getScreenResolution();
  if (f != null) {
    writer.writeMessage(
      8,
      f,
      proto.org.couchers.bugs.ScreenResolution.serializeBinaryToWriter
    );
  }
  f = message.getSentryReplayId();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
};


/**
 * optional string subject = 1;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getSubject = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setSubject = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string description = 2;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getDescription = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setDescription = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string results = 4;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getResults = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setResults = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string frontend_version = 5;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getFrontendVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setFrontendVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string user_agent = 6;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getUserAgent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setUserAgent = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string page = 7;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getPage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setPage = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional ScreenResolution screen_resolution = 8;
 * @return {?proto.org.couchers.bugs.ScreenResolution}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getScreenResolution = function() {
  return /** @type{?proto.org.couchers.bugs.ScreenResolution} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.bugs.ScreenResolution, 8));
};


/**
 * @param {?proto.org.couchers.bugs.ScreenResolution|undefined} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
*/
proto.org.couchers.bugs.ReportBugReq.prototype.setScreenResolution = function(value) {
  return jspb.Message.setWrapperField(this, 8, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.clearScreenResolution = function() {
  return this.setScreenResolution(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.hasScreenResolution = function() {
  return jspb.Message.getField(this, 8) != null;
};


/**
 * optional string sentry_replay_id = 9;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugReq.prototype.getSentryReplayId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugReq} returns this
 */
proto.org.couchers.bugs.ReportBugReq.prototype.setSentryReplayId = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.ReportBugRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.ReportBugRes.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.ReportBugRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportBugRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    bugId: jspb.Message.getFieldWithDefault(msg, 2, ""),
    bugUrl: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.ReportBugRes}
 */
proto.org.couchers.bugs.ReportBugRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.ReportBugRes;
  return proto.org.couchers.bugs.ReportBugRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.ReportBugRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.ReportBugRes}
 */
proto.org.couchers.bugs.ReportBugRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setBugId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setBugUrl(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.ReportBugRes.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.ReportBugRes.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.ReportBugRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportBugRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getBugId();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getBugUrl();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string bug_id = 2;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugRes.prototype.getBugId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugRes} returns this
 */
proto.org.couchers.bugs.ReportBugRes.prototype.setBugId = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string bug_url = 3;
 * @return {string}
 */
proto.org.couchers.bugs.ReportBugRes.prototype.getBugUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportBugRes} returns this
 */
proto.org.couchers.bugs.ReportBugRes.prototype.setBugUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.StatusReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.StatusReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.StatusReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.StatusReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    nonce: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.StatusReq}
 */
proto.org.couchers.bugs.StatusReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.StatusReq;
  return proto.org.couchers.bugs.StatusReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.StatusReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.StatusReq}
 */
proto.org.couchers.bugs.StatusReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setNonce(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.StatusReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.StatusReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.StatusReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.StatusReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getNonce();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string nonce = 1;
 * @return {string}
 */
proto.org.couchers.bugs.StatusReq.prototype.getNonce = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.StatusReq} returns this
 */
proto.org.couchers.bugs.StatusReq.prototype.setNonce = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.StatusRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.StatusRes.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.StatusRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.StatusRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    nonce: jspb.Message.getFieldWithDefault(msg, 1, ""),
    version: jspb.Message.getFieldWithDefault(msg, 2, ""),
    coucherCount: jspb.Message.getFieldWithDefault(msg, 3, 0),
    stable: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.StatusRes}
 */
proto.org.couchers.bugs.StatusRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.StatusRes;
  return proto.org.couchers.bugs.StatusRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.StatusRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.StatusRes}
 */
proto.org.couchers.bugs.StatusRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setNonce(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setVersion(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCoucherCount(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setStable(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.StatusRes.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.StatusRes.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.StatusRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.StatusRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getNonce();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getVersion();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getCoucherCount();
  if (f !== 0) {
    writer.writeUint64(
      3,
      f
    );
  }
  f = message.getStable();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
};


/**
 * optional string nonce = 1;
 * @return {string}
 */
proto.org.couchers.bugs.StatusRes.prototype.getNonce = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.StatusRes} returns this
 */
proto.org.couchers.bugs.StatusRes.prototype.setNonce = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string version = 2;
 * @return {string}
 */
proto.org.couchers.bugs.StatusRes.prototype.getVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.StatusRes} returns this
 */
proto.org.couchers.bugs.StatusRes.prototype.setVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional uint64 coucher_count = 3;
 * @return {number}
 */
proto.org.couchers.bugs.StatusRes.prototype.getCoucherCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.StatusRes} returns this
 */
proto.org.couchers.bugs.StatusRes.prototype.setCoucherCount = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional bool stable = 4;
 * @return {boolean}
 */
proto.org.couchers.bugs.StatusRes.prototype.getStable = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.StatusRes} returns this
 */
proto.org.couchers.bugs.StatusRes.prototype.setStable = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.GeolocationSearchInfoReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.GeolocationSearchInfoReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    searchString: jspb.Message.getFieldWithDefault(msg, 1, ""),
    nominatimResultJson: jspb.Message.getFieldWithDefault(msg, 2, ""),
    formattedResultJson: jspb.Message.getFieldWithDefault(msg, 3, ""),
    durationMs: jspb.Message.getFieldWithDefault(msg, 4, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.GeolocationSearchInfoReq;
  return proto.org.couchers.bugs.GeolocationSearchInfoReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.GeolocationSearchInfoReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSearchString(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNominatimResultJson(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setFormattedResultJson(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setDurationMs(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.GeolocationSearchInfoReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.GeolocationSearchInfoReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSearchString();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getNominatimResultJson();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getFormattedResultJson();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getDurationMs();
  if (f !== 0) {
    writer.writeUint32(
      4,
      f
    );
  }
};


/**
 * optional string search_string = 1;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.getSearchString = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.setSearchString = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string nominatim_result_json = 2;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.getNominatimResultJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.setNominatimResultJson = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string formatted_result_json = 3;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.getFormattedResultJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.setFormattedResultJson = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional uint32 duration_ms = 4;
 * @return {number}
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.getDurationMs = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.GeolocationSearchInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationSearchInfoReq.prototype.setDurationMs = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.GeolocationClickInfoReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.GeolocationClickInfoReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    context: jspb.Message.getFieldWithDefault(msg, 1, ""),
    formattedResultJson: jspb.Message.getFieldWithDefault(msg, 2, ""),
    searchChoiceJson: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.GeolocationClickInfoReq}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.GeolocationClickInfoReq;
  return proto.org.couchers.bugs.GeolocationClickInfoReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.GeolocationClickInfoReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.GeolocationClickInfoReq}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setContext(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setFormattedResultJson(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setSearchChoiceJson(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.GeolocationClickInfoReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.GeolocationClickInfoReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getContext();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getFormattedResultJson();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getSearchChoiceJson();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string context = 1;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.getContext = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationClickInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.setContext = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string formatted_result_json = 2;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.getFormattedResultJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationClickInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.setFormattedResultJson = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string search_choice_json = 3;
 * @return {string}
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.getSearchChoiceJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.GeolocationClickInfoReq} returns this
 */
proto.org.couchers.bugs.GeolocationClickInfoReq.prototype.setSearchChoiceJson = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.DiagnosticInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.DiagnosticInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.DiagnosticInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    tag: jspb.Message.getFieldWithDefault(msg, 1, ""),
    propertiesJson: jspb.Message.getFieldWithDefault(msg, 2, ""),
    value: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    occurred: (f = msg.getOccurred()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.DiagnosticInfo}
 */
proto.org.couchers.bugs.DiagnosticInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.DiagnosticInfo;
  return proto.org.couchers.bugs.DiagnosticInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.DiagnosticInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.DiagnosticInfo}
 */
proto.org.couchers.bugs.DiagnosticInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setTag(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setPropertiesJson(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setValue(value);
      break;
    case 4:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setOccurred(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.DiagnosticInfo.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.DiagnosticInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.DiagnosticInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTag();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getPropertiesJson();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getValue();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getOccurred();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional string tag = 1;
 * @return {string}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.getTag = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.DiagnosticInfo} returns this
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.setTag = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string properties_json = 2;
 * @return {string}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.getPropertiesJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.DiagnosticInfo} returns this
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.setPropertiesJson = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional double value = 3;
 * @return {number}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.getValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.DiagnosticInfo} returns this
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.setValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional google.protobuf.Timestamp occurred = 4;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.getOccurred = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.bugs.DiagnosticInfo} returns this
*/
proto.org.couchers.bugs.DiagnosticInfo.prototype.setOccurred = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.DiagnosticInfo} returns this
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.clearOccurred = function() {
  return this.setOccurred(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.DiagnosticInfo.prototype.hasOccurred = function() {
  return jspb.Message.getField(this, 4) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.ReportDiagnosticsReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.ReportDiagnosticsReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    frontendVersion: jspb.Message.getFieldWithDefault(msg, 1, ""),
    infosList: jspb.Message.toObjectList(msg.getInfosList(),
    proto.org.couchers.bugs.DiagnosticInfo.toObject, includeInstance)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.ReportDiagnosticsReq}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.ReportDiagnosticsReq;
  return proto.org.couchers.bugs.ReportDiagnosticsReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.ReportDiagnosticsReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.ReportDiagnosticsReq}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setFrontendVersion(value);
      break;
    case 2:
      var value = new proto.org.couchers.bugs.DiagnosticInfo;
      reader.readMessage(value,proto.org.couchers.bugs.DiagnosticInfo.deserializeBinaryFromReader);
      msg.addInfos(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.ReportDiagnosticsReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.ReportDiagnosticsReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFrontendVersion();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getInfosList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.org.couchers.bugs.DiagnosticInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional string frontend_version = 1;
 * @return {string}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.getFrontendVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.ReportDiagnosticsReq} returns this
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.setFrontendVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * repeated DiagnosticInfo infos = 2;
 * @return {!Array<!proto.org.couchers.bugs.DiagnosticInfo>}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.getInfosList = function() {
  return /** @type{!Array<!proto.org.couchers.bugs.DiagnosticInfo>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.org.couchers.bugs.DiagnosticInfo, 2));
};


/**
 * @param {!Array<!proto.org.couchers.bugs.DiagnosticInfo>} value
 * @return {!proto.org.couchers.bugs.ReportDiagnosticsReq} returns this
*/
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.setInfosList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.org.couchers.bugs.DiagnosticInfo=} opt_value
 * @param {number=} opt_index
 * @return {!proto.org.couchers.bugs.DiagnosticInfo}
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.addInfos = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.org.couchers.bugs.DiagnosticInfo, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.org.couchers.bugs.ReportDiagnosticsReq} returns this
 */
proto.org.couchers.bugs.ReportDiagnosticsReq.prototype.clearInfosList = function() {
  return this.setInfosList([]);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.CheckNativeStatusReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.CheckNativeStatusReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.CheckNativeStatusReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    debugJson: jspb.Message.getFieldWithDefault(msg, 1, ""),
    easClientId: jspb.Message.getFieldWithDefault(msg, 2, ""),
    installId: jspb.Message.getFieldWithDefault(msg, 3, ""),
    stickyId: jspb.Message.getFieldWithDefault(msg, 4, ""),
    idfv: jspb.Message.getFieldWithDefault(msg, 5, ""),
    androidId: jspb.Message.getFieldWithDefault(msg, 6, ""),
    deviceName: jspb.Message.getFieldWithDefault(msg, 7, ""),
    platform: jspb.Message.getFieldWithDefault(msg, 8, ""),
    osVersion: jspb.Message.getFieldWithDefault(msg, 9, ""),
    locale: jspb.Message.getFieldWithDefault(msg, 10, ""),
    userState: jspb.Message.getFieldWithDefault(msg, 11, ""),
    appVariant: jspb.Message.getFieldWithDefault(msg, 12, ""),
    appVersion: jspb.Message.getFieldWithDefault(msg, 13, ""),
    nativeBuild: jspb.Message.getFieldWithDefault(msg, 14, ""),
    embeddedDisplayVersion: jspb.Message.getFieldWithDefault(msg, 15, ""),
    embeddedDebugVersion: jspb.Message.getFieldWithDefault(msg, 16, ""),
    runningDisplayVersion: jspb.Message.getFieldWithDefault(msg, 17, ""),
    runningDebugVersion: jspb.Message.getFieldWithDefault(msg, 18, ""),
    runningDebugVersionOta: jspb.Message.getFieldWithDefault(msg, 19, ""),
    runtimeVersion: jspb.Message.getFieldWithDefault(msg, 20, ""),
    updateId: jspb.Message.getFieldWithDefault(msg, 21, ""),
    isEmbeddedLaunch: jspb.Message.getBooleanFieldWithDefault(msg, 22, false),
    launchSource: jspb.Message.getFieldWithDefault(msg, 23, ""),
    embeddedCreatedAt: (f = msg.getEmbeddedCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    pushPermission: jspb.Message.getFieldWithDefault(msg, 26, ""),
    pushToken: jspb.Message.getFieldWithDefault(msg, 27, ""),
    timeSinceLastOpen: (f = msg.getTimeSinceLastOpen()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),
    occurred: (f = msg.getOccurred()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.CheckNativeStatusReq;
  return proto.org.couchers.bugs.CheckNativeStatusReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.CheckNativeStatusReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setDebugJson(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setEasClientId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setInstallId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setStickyId(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setIdfv(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setAndroidId(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setDeviceName(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setPlatform(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setOsVersion(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setLocale(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserState(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setAppVariant(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setAppVersion(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setNativeBuild(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmbeddedDisplayVersion(value);
      break;
    case 16:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmbeddedDebugVersion(value);
      break;
    case 17:
      var value = /** @type {string} */ (reader.readString());
      msg.setRunningDisplayVersion(value);
      break;
    case 18:
      var value = /** @type {string} */ (reader.readString());
      msg.setRunningDebugVersion(value);
      break;
    case 19:
      var value = /** @type {string} */ (reader.readString());
      msg.setRunningDebugVersionOta(value);
      break;
    case 20:
      var value = /** @type {string} */ (reader.readString());
      msg.setRuntimeVersion(value);
      break;
    case 21:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdateId(value);
      break;
    case 22:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsEmbeddedLaunch(value);
      break;
    case 23:
      var value = /** @type {string} */ (reader.readString());
      msg.setLaunchSource(value);
      break;
    case 24:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setEmbeddedCreatedAt(value);
      break;
    case 25:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreatedAt(value);
      break;
    case 26:
      var value = /** @type {string} */ (reader.readString());
      msg.setPushPermission(value);
      break;
    case 27:
      var value = /** @type {string} */ (reader.readString());
      msg.setPushToken(value);
      break;
    case 28:
      var value = new google_protobuf_duration_pb.Duration;
      reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
      msg.setTimeSinceLastOpen(value);
      break;
    case 29:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setOccurred(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.CheckNativeStatusReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.CheckNativeStatusReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.CheckNativeStatusReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDebugJson();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getEasClientId();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getInstallId();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getStickyId();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getIdfv();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getAndroidId();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getDeviceName();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getPlatform();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getOsVersion();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getLocale();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getUserState();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getAppVariant();
  if (f.length > 0) {
    writer.writeString(
      12,
      f
    );
  }
  f = message.getAppVersion();
  if (f.length > 0) {
    writer.writeString(
      13,
      f
    );
  }
  f = message.getNativeBuild();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getEmbeddedDisplayVersion();
  if (f.length > 0) {
    writer.writeString(
      15,
      f
    );
  }
  f = message.getEmbeddedDebugVersion();
  if (f.length > 0) {
    writer.writeString(
      16,
      f
    );
  }
  f = message.getRunningDisplayVersion();
  if (f.length > 0) {
    writer.writeString(
      17,
      f
    );
  }
  f = message.getRunningDebugVersion();
  if (f.length > 0) {
    writer.writeString(
      18,
      f
    );
  }
  f = message.getRunningDebugVersionOta();
  if (f.length > 0) {
    writer.writeString(
      19,
      f
    );
  }
  f = message.getRuntimeVersion();
  if (f.length > 0) {
    writer.writeString(
      20,
      f
    );
  }
  f = message.getUpdateId();
  if (f.length > 0) {
    writer.writeString(
      21,
      f
    );
  }
  f = message.getIsEmbeddedLaunch();
  if (f) {
    writer.writeBool(
      22,
      f
    );
  }
  f = message.getLaunchSource();
  if (f.length > 0) {
    writer.writeString(
      23,
      f
    );
  }
  f = message.getEmbeddedCreatedAt();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getCreatedAt();
  if (f != null) {
    writer.writeMessage(
      25,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getPushPermission();
  if (f.length > 0) {
    writer.writeString(
      26,
      f
    );
  }
  f = message.getPushToken();
  if (f.length > 0) {
    writer.writeString(
      27,
      f
    );
  }
  f = message.getTimeSinceLastOpen();
  if (f != null) {
    writer.writeMessage(
      28,
      f,
      google_protobuf_duration_pb.Duration.serializeBinaryToWriter
    );
  }
  f = message.getOccurred();
  if (f != null) {
    writer.writeMessage(
      29,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional string debug_json = 1;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getDebugJson = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setDebugJson = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string eas_client_id = 2;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getEasClientId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setEasClientId = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string install_id = 3;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getInstallId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setInstallId = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string sticky_id = 4;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getStickyId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setStickyId = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string idfv = 5;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getIdfv = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setIdfv = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string android_id = 6;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getAndroidId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setAndroidId = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string device_name = 7;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getDeviceName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setDeviceName = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string platform = 8;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getPlatform = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setPlatform = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string os_version = 9;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getOsVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setOsVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional string locale = 10;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getLocale = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setLocale = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional string user_state = 11;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getUserState = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setUserState = function(value) {
  return jspb.Message.setProto3StringField(this, 11, value);
};


/**
 * optional string app_variant = 12;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getAppVariant = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setAppVariant = function(value) {
  return jspb.Message.setProto3StringField(this, 12, value);
};


/**
 * optional string app_version = 13;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getAppVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setAppVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 13, value);
};


/**
 * optional string native_build = 14;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getNativeBuild = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setNativeBuild = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional string embedded_display_version = 15;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getEmbeddedDisplayVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setEmbeddedDisplayVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 15, value);
};


/**
 * optional string embedded_debug_version = 16;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getEmbeddedDebugVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setEmbeddedDebugVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 16, value);
};


/**
 * optional string running_display_version = 17;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getRunningDisplayVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setRunningDisplayVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 17, value);
};


/**
 * optional string running_debug_version = 18;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getRunningDebugVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 18, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setRunningDebugVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 18, value);
};


/**
 * optional string running_debug_version_ota = 19;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getRunningDebugVersionOta = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setRunningDebugVersionOta = function(value) {
  return jspb.Message.setProto3StringField(this, 19, value);
};


/**
 * optional string runtime_version = 20;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getRuntimeVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setRuntimeVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 20, value);
};


/**
 * optional string update_id = 21;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getUpdateId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 21, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setUpdateId = function(value) {
  return jspb.Message.setProto3StringField(this, 21, value);
};


/**
 * optional bool is_embedded_launch = 22;
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getIsEmbeddedLaunch = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setIsEmbeddedLaunch = function(value) {
  return jspb.Message.setProto3BooleanField(this, 22, value);
};


/**
 * optional string launch_source = 23;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getLaunchSource = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 23, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setLaunchSource = function(value) {
  return jspb.Message.setProto3StringField(this, 23, value);
};


/**
 * optional google.protobuf.Timestamp embedded_created_at = 24;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getEmbeddedCreatedAt = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 24));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
*/
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setEmbeddedCreatedAt = function(value) {
  return jspb.Message.setWrapperField(this, 24, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.clearEmbeddedCreatedAt = function() {
  return this.setEmbeddedCreatedAt(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.hasEmbeddedCreatedAt = function() {
  return jspb.Message.getField(this, 24) != null;
};


/**
 * optional google.protobuf.Timestamp created_at = 25;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getCreatedAt = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 25));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
*/
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setCreatedAt = function(value) {
  return jspb.Message.setWrapperField(this, 25, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.clearCreatedAt = function() {
  return this.setCreatedAt(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.hasCreatedAt = function() {
  return jspb.Message.getField(this, 25) != null;
};


/**
 * optional string push_permission = 26;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getPushPermission = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 26, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setPushPermission = function(value) {
  return jspb.Message.setProto3StringField(this, 26, value);
};


/**
 * optional string push_token = 27;
 * @return {string}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getPushToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 27, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setPushToken = function(value) {
  return jspb.Message.setProto3StringField(this, 27, value);
};


/**
 * optional google.protobuf.Duration time_since_last_open = 28;
 * @return {?proto.google.protobuf.Duration}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getTimeSinceLastOpen = function() {
  return /** @type{?proto.google.protobuf.Duration} */ (
    jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 28));
};


/**
 * @param {?proto.google.protobuf.Duration|undefined} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
*/
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setTimeSinceLastOpen = function(value) {
  return jspb.Message.setWrapperField(this, 28, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.clearTimeSinceLastOpen = function() {
  return this.setTimeSinceLastOpen(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.hasTimeSinceLastOpen = function() {
  return jspb.Message.getField(this, 28) != null;
};


/**
 * optional google.protobuf.Timestamp occurred = 29;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.getOccurred = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 29));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
*/
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.setOccurred = function(value) {
  return jspb.Message.setWrapperField(this, 29, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusReq} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.clearOccurred = function() {
  return this.setOccurred(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusReq.prototype.hasOccurred = function() {
  return jspb.Message.getField(this, 29) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.NativeUpdateInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.NativeUpdateInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.NativeUpdateInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    action: jspb.Message.getFieldWithDefault(msg, 1, 0),
    required: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    actBy: (f = msg.getActBy()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    nagInterval: (f = msg.getNagInterval()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),
    message: jspb.Message.getFieldWithDefault(msg, 5, ""),
    linkUrl: jspb.Message.getFieldWithDefault(msg, 6, ""),
    linkText: jspb.Message.getFieldWithDefault(msg, 7, ""),
    cause: jspb.Message.getFieldWithDefault(msg, 8, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo}
 */
proto.org.couchers.bugs.NativeUpdateInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.NativeUpdateInfo;
  return proto.org.couchers.bugs.NativeUpdateInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.NativeUpdateInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo}
 */
proto.org.couchers.bugs.NativeUpdateInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.org.couchers.bugs.NativeUpdateAction} */ (reader.readEnum());
      msg.setAction(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setRequired(value);
      break;
    case 3:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setActBy(value);
      break;
    case 4:
      var value = new google_protobuf_duration_pb.Duration;
      reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
      msg.setNagInterval(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setMessage(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setLinkUrl(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setLinkText(value);
      break;
    case 8:
      var value = /** @type {!proto.org.couchers.bugs.NativeUpdateCause} */ (reader.readEnum());
      msg.setCause(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.NativeUpdateInfo.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.NativeUpdateInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.NativeUpdateInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAction();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getRequired();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getActBy();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getNagInterval();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      google_protobuf_duration_pb.Duration.serializeBinaryToWriter
    );
  }
  f = message.getMessage();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getLinkUrl();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getLinkText();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getCause();
  if (f !== 0.0) {
    writer.writeEnum(
      8,
      f
    );
  }
};


/**
 * optional NativeUpdateAction action = 1;
 * @return {!proto.org.couchers.bugs.NativeUpdateAction}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getAction = function() {
  return /** @type {!proto.org.couchers.bugs.NativeUpdateAction} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.org.couchers.bugs.NativeUpdateAction} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setAction = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional bool required = 2;
 * @return {boolean}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getRequired = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setRequired = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional google.protobuf.Timestamp act_by = 3;
 * @return {?proto.google.protobuf.Timestamp}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getActBy = function() {
  return /** @type{?proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));
};


/**
 * @param {?proto.google.protobuf.Timestamp|undefined} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
*/
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setActBy = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.clearActBy = function() {
  return this.setActBy(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.hasActBy = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional google.protobuf.Duration nag_interval = 4;
 * @return {?proto.google.protobuf.Duration}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getNagInterval = function() {
  return /** @type{?proto.google.protobuf.Duration} */ (
    jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 4));
};


/**
 * @param {?proto.google.protobuf.Duration|undefined} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
*/
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setNagInterval = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.clearNagInterval = function() {
  return this.setNagInterval(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.hasNagInterval = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional string message = 5;
 * @return {string}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getMessage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setMessage = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string link_url = 6;
 * @return {string}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getLinkUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setLinkUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string link_text = 7;
 * @return {string}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getLinkText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setLinkText = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional NativeUpdateCause cause = 8;
 * @return {!proto.org.couchers.bugs.NativeUpdateCause}
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.getCause = function() {
  return /** @type {!proto.org.couchers.bugs.NativeUpdateCause} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {!proto.org.couchers.bugs.NativeUpdateCause} value
 * @return {!proto.org.couchers.bugs.NativeUpdateInfo} returns this
 */
proto.org.couchers.bugs.NativeUpdateInfo.prototype.setCause = function(value) {
  return jspb.Message.setProto3EnumField(this, 8, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.CheckNativeStatusRes.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.CheckNativeStatusRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.CheckNativeStatusRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    updateInfo: (f = msg.getUpdateInfo()) && proto.org.couchers.bugs.NativeUpdateInfo.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusRes}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.CheckNativeStatusRes;
  return proto.org.couchers.bugs.CheckNativeStatusRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.CheckNativeStatusRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusRes}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.org.couchers.bugs.NativeUpdateInfo;
      reader.readMessage(value,proto.org.couchers.bugs.NativeUpdateInfo.deserializeBinaryFromReader);
      msg.setUpdateInfo(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.CheckNativeStatusRes.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.CheckNativeStatusRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.CheckNativeStatusRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUpdateInfo();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.org.couchers.bugs.NativeUpdateInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional NativeUpdateInfo update_info = 1;
 * @return {?proto.org.couchers.bugs.NativeUpdateInfo}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.getUpdateInfo = function() {
  return /** @type{?proto.org.couchers.bugs.NativeUpdateInfo} */ (
    jspb.Message.getWrapperField(this, proto.org.couchers.bugs.NativeUpdateInfo, 1));
};


/**
 * @param {?proto.org.couchers.bugs.NativeUpdateInfo|undefined} value
 * @return {!proto.org.couchers.bugs.CheckNativeStatusRes} returns this
*/
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.setUpdateInfo = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.CheckNativeStatusRes} returns this
 */
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.clearUpdateInfo = function() {
  return this.setUpdateInfo(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.CheckNativeStatusRes.prototype.hasUpdateInfo = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.EvaluateFeatureFlagReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    flagKey: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagReq}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.EvaluateFeatureFlagReq;
  return proto.org.couchers.bugs.EvaluateFeatureFlagReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagReq}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setFlagKey(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.EvaluateFeatureFlagReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFlagKey();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string flag_key = 1;
 * @return {string}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.prototype.getFlagKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagReq} returns this
 */
proto.org.couchers.bugs.EvaluateFeatureFlagReq.prototype.setFlagKey = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.EvaluateFeatureFlagRes.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagRes} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_struct_pb.Value.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagRes}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.EvaluateFeatureFlagRes;
  return proto.org.couchers.bugs.EvaluateFeatureFlagRes.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagRes} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagRes}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_struct_pb.Value;
      reader.readMessage(value,google_protobuf_struct_pb.Value.deserializeBinaryFromReader);
      msg.setValue(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.EvaluateFeatureFlagRes.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.EvaluateFeatureFlagRes} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_struct_pb.Value.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Value value = 1;
 * @return {?proto.google.protobuf.Value}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Value, 1));
};


/**
 * @param {?proto.google.protobuf.Value|undefined} value
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagRes} returns this
*/
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.setValue = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.org.couchers.bugs.EvaluateFeatureFlagRes} returns this
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.clearValue = function() {
  return this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.EvaluateFeatureFlagRes.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.toObject = function(opt_includeInstance) {
  return proto.org.couchers.bugs.LogExperimentExposureReq.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.org.couchers.bugs.LogExperimentExposureReq} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.LogExperimentExposureReq.toObject = function(includeInstance, msg) {
  var f, obj = {
    experimentKey: jspb.Message.getFieldWithDefault(msg, 1, ""),
    experimentName: jspb.Message.getFieldWithDefault(msg, 2, ""),
    variationId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    variationKey: jspb.Message.getFieldWithDefault(msg, 4, ""),
    variationName: jspb.Message.getFieldWithDefault(msg, 5, ""),
    hashAttribute: jspb.Message.getFieldWithDefault(msg, 6, ""),
    hashValue: jspb.Message.getFieldWithDefault(msg, 7, ""),
    featureId: jspb.Message.getFieldWithDefault(msg, 8, ""),
    inExperiment: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
    bucket: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0),
    hashUsed: jspb.Message.getBooleanFieldWithDefault(msg, 11, false),
    stickyBucketUsed: jspb.Message.getBooleanFieldWithDefault(msg, 12, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.org.couchers.bugs.LogExperimentExposureReq;
  return proto.org.couchers.bugs.LogExperimentExposureReq.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.org.couchers.bugs.LogExperimentExposureReq} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setExperimentKey(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setExperimentName(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setVariationId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setVariationKey(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setVariationName(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setHashAttribute(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setHashValue(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setFeatureId(value);
      break;
    case 9:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setInExperiment(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setBucket(value);
      break;
    case 11:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setHashUsed(value);
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setStickyBucketUsed(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.org.couchers.bugs.LogExperimentExposureReq.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.org.couchers.bugs.LogExperimentExposureReq} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.org.couchers.bugs.LogExperimentExposureReq.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getExperimentKey();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getExperimentName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getVariationId();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getVariationKey();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getVariationName();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getHashAttribute();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getHashValue();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getFeatureId();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getInExperiment();
  if (f) {
    writer.writeBool(
      9,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 10));
  if (f != null) {
    writer.writeDouble(
      10,
      f
    );
  }
  f = /** @type {boolean} */ (jspb.Message.getField(message, 11));
  if (f != null) {
    writer.writeBool(
      11,
      f
    );
  }
  f = /** @type {boolean} */ (jspb.Message.getField(message, 12));
  if (f != null) {
    writer.writeBool(
      12,
      f
    );
  }
};


/**
 * optional string experiment_key = 1;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getExperimentKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setExperimentKey = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string experiment_name = 2;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getExperimentName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setExperimentName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional int32 variation_id = 3;
 * @return {number}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getVariationId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setVariationId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string variation_key = 4;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getVariationKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setVariationKey = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string variation_name = 5;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getVariationName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setVariationName = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string hash_attribute = 6;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getHashAttribute = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setHashAttribute = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string hash_value = 7;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getHashValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setHashValue = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string feature_id = 8;
 * @return {string}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getFeatureId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setFeatureId = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional bool in_experiment = 9;
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getInExperiment = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setInExperiment = function(value) {
  return jspb.Message.setProto3BooleanField(this, 9, value);
};


/**
 * optional double bucket = 10;
 * @return {number}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getBucket = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setBucket = function(value) {
  return jspb.Message.setField(this, 10, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.clearBucket = function() {
  return jspb.Message.setField(this, 10, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.hasBucket = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional bool hash_used = 11;
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getHashUsed = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setHashUsed = function(value) {
  return jspb.Message.setField(this, 11, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.clearHashUsed = function() {
  return jspb.Message.setField(this, 11, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.hasHashUsed = function() {
  return jspb.Message.getField(this, 11) != null;
};


/**
 * optional bool sticky_bucket_used = 12;
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.getStickyBucketUsed = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.setStickyBucketUsed = function(value) {
  return jspb.Message.setField(this, 12, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.org.couchers.bugs.LogExperimentExposureReq} returns this
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.clearStickyBucketUsed = function() {
  return jspb.Message.setField(this, 12, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.org.couchers.bugs.LogExperimentExposureReq.prototype.hasStickyBucketUsed = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * @enum {number}
 */
proto.org.couchers.bugs.NativeUpdateAction = {
  NATIVE_UPDATE_ACTION_UNSPECIFIED: 0,
  NATIVE_UPDATE_ACTION_NONE: 1,
  NATIVE_UPDATE_ACTION_OTA: 2,
  NATIVE_UPDATE_ACTION_STORE: 3,
  NATIVE_UPDATE_ACTION_REINSTALL: 4
};

/**
 * @enum {number}
 */
proto.org.couchers.bugs.NativeUpdateCause = {
  NATIVE_UPDATE_CAUSE_UNSPECIFIED: 0,
  NATIVE_UPDATE_CAUSE_AGE: 1,
  NATIVE_UPDATE_CAUSE_BANNED: 2
};

goog.object.extend(exports, proto.org.couchers.bugs);
