text: /**
   * @fileoverview
   * @enhanceable
   * @public
   */
  // GENERATED CODE -- DO NOT EDIT!
  
  
  goog.provide('proto.game.ActionRequest');
  goog.provide('proto.game.ActionResponse');
  goog.provide('proto.game.Card');
  goog.provide('proto.game.CardGroup');
  goog.provide('proto.game.CreateRoomRequest');
  goog.provide('proto.game.CreateRoomResponse');
  goog.provide('proto.game.DealDDZResponse');
  goog.provide('proto.game.DealResponse');
  goog.provide('proto.game.Dice');
  goog.provide('proto.game.DiscardDDZRequest');
  goog.provide('proto.game.DiscardDDZResponse');
  goog.provide('proto.game.DiscardRequest');
  goog.provide('proto.game.DiscardResponse');
  goog.provide('proto.game.DismissRoomRequest');
  goog.provide('proto.game.DismissRoomResponse');
  goog.provide('proto.game.DismissRoomWebRequest');
  goog.provide('proto.game.DismissRoomWebResponse');
  goog.provide('proto.game.DrawNiaoZZResponse');
  goog.provide('proto.game.DrawNiaoZZResponse.Niao');
  goog.provide('proto.game.DrawResponse');
  goog.provide('proto.game.EnterRoomOtherResponse');
  goog.provide('proto.game.EnterRoomRequest');
  goog.provide('proto.game.EnterRoomResponse');
  goog.provide('proto.game.EnterRoomResponse.Player');
  goog.provide('proto.game.EnterRoomWebResponse');
  goog.provide('proto.game.ExistRoomWebRequest');
  goog.provide('proto.game.ExistRoomWebResponse');
  goog.provide('proto.game.ExitRoomRequest');
  goog.provide('proto.game.ExitRoomResponse');
  goog.provide('proto.game.ExitRoomWebResponse');
  goog.provide('proto.game.HeartbeatRequest');
  goog.provide('proto.game.HeartbeatResponse');
  goog.provide('proto.game.LoadBalanceWebResponse');
  goog.provide('proto.game.LoadBalanceWebResponse.Unit');
  goog.provide('proto.game.LoadMinusWebResponse');
  goog.provide('proto.game.LoadPlusWebResponse');
  goog.provide('proto.game.OnlineStatusResponse');
  goog.provide('proto.game.PlayerVoteRequest');
  goog.provide('proto.game.PlayerVoteResponse');
  goog.provide('proto.game.Prompt');
  goog.provide('proto.game.PromptResponse');
  goog.provide('proto.game.ReadyHandResponse');
  goog.provide('proto.game.ReadyRequest');
  goog.provide('proto.game.ReadyResponse');
  goog.provide('proto.game.ReconnectDDZResponse');
  goog.provide('proto.game.ReconnectDDZResponse.Player');
  goog.provide('proto.game.ReconnectResponse');
  goog.provide('proto.game.ReconnectResponse.Player');
  goog.provide('proto.game.RefundWebResponse');
  goog.provide('proto.game.RobDDZRequest');
  goog.provide('proto.game.RobDDZResponse');
  goog.provide('proto.game.RunningWebReponse');
  goog.provide('proto.game.SettleForRoomDDZResponse');
  goog.provide('proto.game.SettleForRoomDDZResponse.PlayerData');
  goog.provide('proto.game.SettleForRoomResponse');
  goog.provide('proto.game.SettleForRoomResponse.PlayerData');
  goog.provide('proto.game.SettleForRoundDDZResponse');
  goog.provide('proto.game.SettleForRoundDDZResponse.PlayerData');
  goog.provide('proto.game.SettleForRoundResponse');
  goog.provide('proto.game.SettleForRoundResponse.PlayerData');
  goog.provide('proto.game.SettleForRoundZZResponse');
  goog.provide('proto.game.SettleForRoundZZResponse.PlayerData');
  goog.provide('proto.game.SpeakerRequest');
  goog.provide('proto.game.SpeakerResponse');
  goog.provide('proto.game.SponsorVoteResponse');
  goog.provide('proto.game.SynchroniseCardsResponse');
  goog.provide('proto.game.SynchroniseScoreResponse');
  goog.provide('proto.game.SynchroniseScoreResponse.ScoreData');
  
  goog.require('jspb.Message');
  goog.require('jspb.BinaryReader');
  goog.require('jspb.BinaryWriter');
  
  
  /**
   * 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.game.CreateRoomRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.CreateRoomRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.CreateRoomRequest.displayName = 'proto.game.CreateRoomRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.CreateRoomRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.CreateRoomRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.CreateRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.CreateRoomRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      kwargs: jspb.Message.getFieldWithDefault(msg, 3, ""),
      roomUuid: jspb.Message.getFieldWithDefault(msg, 4, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.CreateRoomRequest}
   */
  proto.game.CreateRoomRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.CreateRoomRequest;
    return proto.game.CreateRoomRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.CreateRoomRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.CreateRoomRequest}
   */
  proto.game.CreateRoomRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setKwargs(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setRoomUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.CreateRoomRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CreateRoomRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.CreateRoomRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CreateRoomRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getKwargs();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getRoomUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.CreateRoomRequest.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.CreateRoomRequest.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string owner_uuid = 2;
   * @return {string}
   */
  proto.game.CreateRoomRequest.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.CreateRoomRequest.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string kwargs = 3;
   * @return {string}
   */
  proto.game.CreateRoomRequest.prototype.getKwargs = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.CreateRoomRequest.prototype.setKwargs = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string room_uuid = 4;
   * @return {string}
   */
  proto.game.CreateRoomRequest.prototype.getRoomUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.CreateRoomRequest.prototype.setRoomUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.CreateRoomResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.CreateRoomResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.CreateRoomResponse.displayName = 'proto.game.CreateRoomResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.CreateRoomResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.CreateRoomResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.CreateRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.CreateRoomResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 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.game.CreateRoomResponse}
   */
  proto.game.CreateRoomResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.CreateRoomResponse;
    return proto.game.CreateRoomResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.CreateRoomResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.CreateRoomResponse}
   */
  proto.game.CreateRoomResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.CreateRoomResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CreateRoomResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.CreateRoomResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CreateRoomResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.CreateRoomResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.CreateRoomResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.EnterRoomRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.EnterRoomRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.EnterRoomRequest.displayName = 'proto.game.EnterRoomRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.EnterRoomRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.EnterRoomRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.EnterRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.EnterRoomRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      info: 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.game.EnterRoomRequest}
   */
  proto.game.EnterRoomRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.EnterRoomRequest;
    return proto.game.EnterRoomRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.EnterRoomRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.EnterRoomRequest}
   */
  proto.game.EnterRoomRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setInfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.EnterRoomRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.EnterRoomRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getInfo();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.EnterRoomRequest.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomRequest.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.EnterRoomRequest.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomRequest.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string info = 3;
   * @return {string}
   */
  proto.game.EnterRoomRequest.prototype.getInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomRequest.prototype.setInfo = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  
  /**
   * 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.game.EnterRoomResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.EnterRoomResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.EnterRoomResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.EnterRoomResponse.displayName = 'proto.game.EnterRoomResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.EnterRoomResponse.repeatedFields_ = [6];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.EnterRoomResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.EnterRoomResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.EnterRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.EnterRoomResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      kwargs: jspb.Message.getFieldWithDefault(msg, 4, ""),
      restCards: jspb.Message.getFieldWithDefault(msg, 5, 0),
      playerList: jspb.Message.toObjectList(msg.getPlayerList(),
      proto.game.EnterRoomResponse.Player.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.game.EnterRoomResponse}
   */
  proto.game.EnterRoomResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.EnterRoomResponse;
    return proto.game.EnterRoomResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.EnterRoomResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.EnterRoomResponse}
   */
  proto.game.EnterRoomResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setKwargs(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRestCards(value);
        break;
      case 6:
        var value = new proto.game.EnterRoomResponse.Player;
        reader.readMessage(value,proto.game.EnterRoomResponse.Player.deserializeBinaryFromReader);
        msg.addPlayer(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.EnterRoomResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.EnterRoomResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getKwargs();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getRestCards();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getPlayerList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        6,
        f,
        proto.game.EnterRoomResponse.Player.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.EnterRoomResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_id = 2;
   * @return {number}
   */
  proto.game.EnterRoomResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string owner_uuid = 3;
   * @return {string}
   */
  proto.game.EnterRoomResponse.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomResponse.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string kwargs = 4;
   * @return {string}
   */
  proto.game.EnterRoomResponse.prototype.getKwargs = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomResponse.prototype.setKwargs = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 rest_cards = 5;
   * @return {number}
   */
  proto.game.EnterRoomResponse.prototype.getRestCards = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.prototype.setRestCards = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * repeated Player player = 6;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.EnterRoomResponse.Player>}
   */
  proto.game.EnterRoomResponse.prototype.getPlayerList = function() {
    return /** @type{!Array.<!proto.game.EnterRoomResponse.Player>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.EnterRoomResponse.Player, 6));
  };
  
  
  /** @param {!Array.<!proto.game.EnterRoomResponse.Player>} value */
  proto.game.EnterRoomResponse.prototype.setPlayerList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 6, value);
  };
  
  
  /**
   * @param {!proto.game.EnterRoomResponse.Player=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.EnterRoomResponse.Player}
   */
  proto.game.EnterRoomResponse.prototype.addPlayer = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.game.EnterRoomResponse.Player, opt_index);
  };
  
  
  proto.game.EnterRoomResponse.prototype.clearPlayerList = function() {
    this.setPlayerList([]);
  };
  
  
  
  /**
   * 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.game.EnterRoomResponse.Player = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.EnterRoomResponse.Player, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.EnterRoomResponse.Player.displayName = 'proto.game.EnterRoomResponse.Player';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.EnterRoomResponse.Player.prototype.toObject = function(opt_includeInstance) {
    return proto.game.EnterRoomResponse.Player.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.EnterRoomResponse.Player} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.EnterRoomResponse.Player.toObject = function(includeInstance, msg) {
    var f, obj = {
      seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      info: jspb.Message.getFieldWithDefault(msg, 3, ""),
      status: jspb.Message.getFieldWithDefault(msg, 4, 0),
      isOnline: jspb.Message.getFieldWithDefault(msg, 5, 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.game.EnterRoomResponse.Player}
   */
  proto.game.EnterRoomResponse.Player.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.EnterRoomResponse.Player;
    return proto.game.EnterRoomResponse.Player.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.EnterRoomResponse.Player} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.EnterRoomResponse.Player}
   */
  proto.game.EnterRoomResponse.Player.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSeat(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setInfo(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setStatus(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsOnline(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.EnterRoomResponse.Player} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomResponse.Player.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.EnterRoomResponse.Player.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomResponse.Player.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSeat();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getInfo();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getStatus();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getIsOnline();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 seat = 1;
   * @return {number}
   */
  proto.game.EnterRoomResponse.Player.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.Player.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.EnterRoomResponse.Player.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomResponse.Player.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string info = 3;
   * @return {string}
   */
  proto.game.EnterRoomResponse.Player.prototype.getInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomResponse.Player.prototype.setInfo = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 status = 4;
   * @return {number}
   */
  proto.game.EnterRoomResponse.Player.prototype.getStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.Player.prototype.setStatus = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 is_online = 5;
   * @return {number}
   */
  proto.game.EnterRoomResponse.Player.prototype.getIsOnline = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomResponse.Player.prototype.setIsOnline = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  
  /**
   * 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.game.EnterRoomOtherResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.EnterRoomOtherResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.EnterRoomOtherResponse.displayName = 'proto.game.EnterRoomOtherResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.EnterRoomOtherResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.EnterRoomOtherResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.EnterRoomOtherResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.EnterRoomOtherResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      seat: jspb.Message.getFieldWithDefault(msg, 3, 0),
      info: jspb.Message.getFieldWithDefault(msg, 4, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.EnterRoomOtherResponse}
   */
  proto.game.EnterRoomOtherResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.EnterRoomOtherResponse;
    return proto.game.EnterRoomOtherResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.EnterRoomOtherResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.EnterRoomOtherResponse}
   */
  proto.game.EnterRoomOtherResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSeat(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setInfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.EnterRoomOtherResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomOtherResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.EnterRoomOtherResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomOtherResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getSeat();
    if (f !== 0) {
      writer.writeUint32(
        3,
        f
      );
    }
    f = this.getInfo();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.EnterRoomOtherResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomOtherResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.EnterRoomOtherResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomOtherResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional uint32 seat = 3;
   * @return {number}
   */
  proto.game.EnterRoomOtherResponse.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomOtherResponse.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string info = 4;
   * @return {string}
   */
  proto.game.EnterRoomOtherResponse.prototype.getInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomOtherResponse.prototype.setInfo = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.EnterRoomWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.EnterRoomWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.EnterRoomWebResponse.displayName = 'proto.game.EnterRoomWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.EnterRoomWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.EnterRoomWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.EnterRoomWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.EnterRoomWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 5, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.EnterRoomWebResponse}
   */
  proto.game.EnterRoomWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.EnterRoomWebResponse;
    return proto.game.EnterRoomWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.EnterRoomWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.EnterRoomWebResponse}
   */
  proto.game.EnterRoomWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.EnterRoomWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.EnterRoomWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.EnterRoomWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.EnterRoomWebResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomWebResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_id = 2;
   * @return {number}
   */
  proto.game.EnterRoomWebResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.EnterRoomWebResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string player_uuid = 3;
   * @return {string}
   */
  proto.game.EnterRoomWebResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomWebResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string game_uuid = 4;
   * @return {string}
   */
  proto.game.EnterRoomWebResponse.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomWebResponse.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string app_uuid = 5;
   * @return {string}
   */
  proto.game.EnterRoomWebResponse.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.EnterRoomWebResponse.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  
  /**
   * 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.game.ExitRoomRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ExitRoomRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ExitRoomRequest.displayName = 'proto.game.ExitRoomRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ExitRoomRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ExitRoomRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ExitRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ExitRoomRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.ExitRoomRequest}
   */
  proto.game.ExitRoomRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ExitRoomRequest;
    return proto.game.ExitRoomRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ExitRoomRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ExitRoomRequest}
   */
  proto.game.ExitRoomRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ExitRoomRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ExitRoomRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
  };
  
  
  
  /**
   * 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.game.ExitRoomResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ExitRoomResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ExitRoomResponse.displayName = 'proto.game.ExitRoomResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ExitRoomResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ExitRoomResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ExitRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ExitRoomResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.ExitRoomResponse}
   */
  proto.game.ExitRoomResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ExitRoomResponse;
    return proto.game.ExitRoomResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ExitRoomResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ExitRoomResponse}
   */
  proto.game.ExitRoomResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ExitRoomResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ExitRoomResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.ExitRoomResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ExitRoomResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.ExitRoomResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ExitRoomResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.ExitRoomWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ExitRoomWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ExitRoomWebResponse.displayName = 'proto.game.ExitRoomWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ExitRoomWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ExitRoomWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ExitRoomWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ExitRoomWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 5, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.ExitRoomWebResponse}
   */
  proto.game.ExitRoomWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ExitRoomWebResponse;
    return proto.game.ExitRoomWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ExitRoomWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ExitRoomWebResponse}
   */
  proto.game.ExitRoomWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ExitRoomWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ExitRoomWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExitRoomWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.ExitRoomWebResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ExitRoomWebResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_id = 2;
   * @return {number}
   */
  proto.game.ExitRoomWebResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ExitRoomWebResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string player_uuid = 3;
   * @return {string}
   */
  proto.game.ExitRoomWebResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ExitRoomWebResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string game_uuid = 4;
   * @return {string}
   */
  proto.game.ExitRoomWebResponse.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ExitRoomWebResponse.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string app_uuid = 5;
   * @return {string}
   */
  proto.game.ExitRoomWebResponse.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ExitRoomWebResponse.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  
  /**
   * 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.game.DismissRoomRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DismissRoomRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DismissRoomRequest.displayName = 'proto.game.DismissRoomRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DismissRoomRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DismissRoomRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DismissRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DismissRoomRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.DismissRoomRequest}
   */
  proto.game.DismissRoomRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DismissRoomRequest;
    return proto.game.DismissRoomRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DismissRoomRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DismissRoomRequest}
   */
  proto.game.DismissRoomRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DismissRoomRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DismissRoomRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
  };
  
  
  
  /**
   * 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.game.DismissRoomResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DismissRoomResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DismissRoomResponse.displayName = 'proto.game.DismissRoomResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DismissRoomResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DismissRoomResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DismissRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DismissRoomResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      flag: 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.game.DismissRoomResponse}
   */
  proto.game.DismissRoomResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DismissRoomResponse;
    return proto.game.DismissRoomResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DismissRoomResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DismissRoomResponse}
   */
  proto.game.DismissRoomResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setFlag(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DismissRoomResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DismissRoomResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getFlag();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.DismissRoomResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DismissRoomResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 flag = 2;
   * @return {number}
   */
  proto.game.DismissRoomResponse.prototype.getFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DismissRoomResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.DismissRoomWebRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DismissRoomWebRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DismissRoomWebRequest.displayName = 'proto.game.DismissRoomWebRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DismissRoomWebRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DismissRoomWebRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DismissRoomWebRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DismissRoomWebRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      roomUuid: jspb.Message.getFieldWithDefault(msg, 5, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.DismissRoomWebRequest}
   */
  proto.game.DismissRoomWebRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DismissRoomWebRequest;
    return proto.game.DismissRoomWebRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DismissRoomWebRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DismissRoomWebRequest}
   */
  proto.game.DismissRoomWebRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setRoomUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DismissRoomWebRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomWebRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DismissRoomWebRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomWebRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getRoomUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.DismissRoomWebRequest.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DismissRoomWebRequest.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string game_uuid = 2;
   * @return {string}
   */
  proto.game.DismissRoomWebRequest.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebRequest.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string app_uuid = 3;
   * @return {string}
   */
  proto.game.DismissRoomWebRequest.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebRequest.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string owner_uuid = 4;
   * @return {string}
   */
  proto.game.DismissRoomWebRequest.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebRequest.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string room_uuid = 5;
   * @return {string}
   */
  proto.game.DismissRoomWebRequest.prototype.getRoomUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebRequest.prototype.setRoomUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  
  /**
   * 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.game.DismissRoomWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DismissRoomWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DismissRoomWebResponse.displayName = 'proto.game.DismissRoomWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DismissRoomWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DismissRoomWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DismissRoomWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DismissRoomWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 5, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.DismissRoomWebResponse}
   */
  proto.game.DismissRoomWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DismissRoomWebResponse;
    return proto.game.DismissRoomWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DismissRoomWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DismissRoomWebResponse}
   */
  proto.game.DismissRoomWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DismissRoomWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DismissRoomWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DismissRoomWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.DismissRoomWebResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DismissRoomWebResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_id = 2;
   * @return {number}
   */
  proto.game.DismissRoomWebResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DismissRoomWebResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string game_uuid = 3;
   * @return {string}
   */
  proto.game.DismissRoomWebResponse.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebResponse.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string app_uuid = 4;
   * @return {string}
   */
  proto.game.DismissRoomWebResponse.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebResponse.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string owner_uuid = 5;
   * @return {string}
   */
  proto.game.DismissRoomWebResponse.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DismissRoomWebResponse.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  
  /**
   * 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.game.RefundWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.RefundWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.RefundWebResponse.displayName = 'proto.game.RefundWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.RefundWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.RefundWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.RefundWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.RefundWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      code: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 5, ""),
      roomUuid: jspb.Message.getFieldWithDefault(msg, 6, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.RefundWebResponse}
   */
  proto.game.RefundWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.RefundWebResponse;
    return proto.game.RefundWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.RefundWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.RefundWebResponse}
   */
  proto.game.RefundWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setRoomUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.RefundWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RefundWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.RefundWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RefundWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
    f = this.getRoomUuid();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 code = 1;
   * @return {number}
   */
  proto.game.RefundWebResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RefundWebResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_id = 2;
   * @return {number}
   */
  proto.game.RefundWebResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RefundWebResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string game_uuid = 3;
   * @return {string}
   */
  proto.game.RefundWebResponse.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RefundWebResponse.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string app_uuid = 4;
   * @return {string}
   */
  proto.game.RefundWebResponse.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RefundWebResponse.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string owner_uuid = 5;
   * @return {string}
   */
  proto.game.RefundWebResponse.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RefundWebResponse.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional string room_uuid = 6;
   * @return {string}
   */
  proto.game.RefundWebResponse.prototype.getRoomUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RefundWebResponse.prototype.setRoomUuid = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  
  /**
   * 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.game.SponsorVoteResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SponsorVoteResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SponsorVoteResponse.displayName = 'proto.game.SponsorVoteResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SponsorVoteResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SponsorVoteResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SponsorVoteResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SponsorVoteResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      sponsor: jspb.Message.getFieldWithDefault(msg, 3, ""),
      expireSeconds: 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.game.SponsorVoteResponse}
   */
  proto.game.SponsorVoteResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SponsorVoteResponse;
    return proto.game.SponsorVoteResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SponsorVoteResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SponsorVoteResponse}
   */
  proto.game.SponsorVoteResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setSponsor(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setExpireSeconds(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SponsorVoteResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SponsorVoteResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SponsorVoteResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SponsorVoteResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getSponsor();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getExpireSeconds();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.SponsorVoteResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SponsorVoteResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string sponsor = 3;
   * @return {string}
   */
  proto.game.SponsorVoteResponse.prototype.getSponsor = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SponsorVoteResponse.prototype.setSponsor = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 expire_seconds = 4;
   * @return {number}
   */
  proto.game.SponsorVoteResponse.prototype.getExpireSeconds = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SponsorVoteResponse.prototype.setExpireSeconds = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.PlayerVoteRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.PlayerVoteRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.PlayerVoteRequest.displayName = 'proto.game.PlayerVoteRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.PlayerVoteRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.PlayerVoteRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.PlayerVoteRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.PlayerVoteRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 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.game.PlayerVoteRequest}
   */
  proto.game.PlayerVoteRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.PlayerVoteRequest;
    return proto.game.PlayerVoteRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.PlayerVoteRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.PlayerVoteRequest}
   */
  proto.game.PlayerVoteRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setFlag(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.PlayerVoteRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PlayerVoteRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.PlayerVoteRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PlayerVoteRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f) {
      writer.writeBool(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional bool flag = 1;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.game.PlayerVoteRequest.prototype.getFlag = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 1, false));
  };
  
  
  /** @param {boolean} value */
  proto.game.PlayerVoteRequest.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.PlayerVoteResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.PlayerVoteResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.PlayerVoteResponse.displayName = 'proto.game.PlayerVoteResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.PlayerVoteResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.PlayerVoteResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.PlayerVoteResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.PlayerVoteResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, false),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.PlayerVoteResponse}
   */
  proto.game.PlayerVoteResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.PlayerVoteResponse;
    return proto.game.PlayerVoteResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.PlayerVoteResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.PlayerVoteResponse}
   */
  proto.game.PlayerVoteResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setFlag(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.PlayerVoteResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PlayerVoteResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.PlayerVoteResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PlayerVoteResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f) {
      writer.writeBool(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional bool flag = 1;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.game.PlayerVoteResponse.prototype.getFlag = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 1, false));
  };
  
  
  /** @param {boolean} value */
  proto.game.PlayerVoteResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.PlayerVoteResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.PlayerVoteResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.OnlineStatusResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.OnlineStatusResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.OnlineStatusResponse.displayName = 'proto.game.OnlineStatusResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.OnlineStatusResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.OnlineStatusResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.OnlineStatusResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.OnlineStatusResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      status: jspb.Message.getFieldWithDefault(msg, 2, 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.game.OnlineStatusResponse}
   */
  proto.game.OnlineStatusResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.OnlineStatusResponse;
    return proto.game.OnlineStatusResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.OnlineStatusResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.OnlineStatusResponse}
   */
  proto.game.OnlineStatusResponse.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.setPlayerUuid(value);
        break;
      case 2:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setStatus(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.OnlineStatusResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.OnlineStatusResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.OnlineStatusResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.OnlineStatusResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getStatus();
    if (f) {
      writer.writeBool(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.OnlineStatusResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.OnlineStatusResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional bool status = 2;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.game.OnlineStatusResponse.prototype.getStatus = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));
  };
  
  
  /** @param {boolean} value */
  proto.game.OnlineStatusResponse.prototype.setStatus = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.SpeakerRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SpeakerRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SpeakerRequest.displayName = 'proto.game.SpeakerRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SpeakerRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SpeakerRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SpeakerRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SpeakerRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      content: 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.game.SpeakerRequest}
   */
  proto.game.SpeakerRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SpeakerRequest;
    return proto.game.SpeakerRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SpeakerRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SpeakerRequest}
   */
  proto.game.SpeakerRequest.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.setContent(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SpeakerRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SpeakerRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SpeakerRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SpeakerRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getContent();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional string content = 1;
   * @return {string}
   */
  proto.game.SpeakerRequest.prototype.getContent = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SpeakerRequest.prototype.setContent = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.SpeakerResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SpeakerResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SpeakerResponse.displayName = 'proto.game.SpeakerResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SpeakerResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SpeakerResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SpeakerResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SpeakerResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      content: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.SpeakerResponse}
   */
  proto.game.SpeakerResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SpeakerResponse;
    return proto.game.SpeakerResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SpeakerResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SpeakerResponse}
   */
  proto.game.SpeakerResponse.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.setPlayerUuid(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setContent(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SpeakerResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SpeakerResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SpeakerResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SpeakerResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getContent();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SpeakerResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SpeakerResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string content = 2;
   * @return {string}
   */
  proto.game.SpeakerResponse.prototype.getContent = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SpeakerResponse.prototype.setContent = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.ReadyRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ReadyRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReadyRequest.displayName = 'proto.game.ReadyRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReadyRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReadyRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReadyRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReadyRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.ReadyRequest}
   */
  proto.game.ReadyRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReadyRequest;
    return proto.game.ReadyRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReadyRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReadyRequest}
   */
  proto.game.ReadyRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReadyRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReadyRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
  };
  
  
  
  /**
   * 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.game.ReadyResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ReadyResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReadyResponse.displayName = 'proto.game.ReadyResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReadyResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReadyResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReadyResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReadyResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: 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.game.ReadyResponse}
   */
  proto.game.ReadyResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReadyResponse;
    return proto.game.ReadyResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReadyResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReadyResponse}
   */
  proto.game.ReadyResponse.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.setPlayerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReadyResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReadyResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.ReadyResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReadyResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.LoadPlusWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.LoadPlusWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.LoadPlusWebResponse.displayName = 'proto.game.LoadPlusWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.LoadPlusWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.LoadPlusWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.LoadPlusWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.LoadPlusWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      serverIp: jspb.Message.getFieldWithDefault(msg, 1, ""),
      serverPort: 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.game.LoadPlusWebResponse}
   */
  proto.game.LoadPlusWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.LoadPlusWebResponse;
    return proto.game.LoadPlusWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.LoadPlusWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.LoadPlusWebResponse}
   */
  proto.game.LoadPlusWebResponse.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.setServerIp(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setServerPort(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.LoadPlusWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadPlusWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.LoadPlusWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadPlusWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getServerIp();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getServerPort();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string server_ip = 1;
   * @return {string}
   */
  proto.game.LoadPlusWebResponse.prototype.getServerIp = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadPlusWebResponse.prototype.setServerIp = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 server_port = 2;
   * @return {number}
   */
  proto.game.LoadPlusWebResponse.prototype.getServerPort = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.LoadPlusWebResponse.prototype.setServerPort = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.LoadMinusWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.LoadMinusWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.LoadMinusWebResponse.displayName = 'proto.game.LoadMinusWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.LoadMinusWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.LoadMinusWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.LoadMinusWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.LoadMinusWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      serverIp: jspb.Message.getFieldWithDefault(msg, 1, ""),
      serverPort: 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.game.LoadMinusWebResponse}
   */
  proto.game.LoadMinusWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.LoadMinusWebResponse;
    return proto.game.LoadMinusWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.LoadMinusWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.LoadMinusWebResponse}
   */
  proto.game.LoadMinusWebResponse.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.setServerIp(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setServerPort(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.LoadMinusWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadMinusWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.LoadMinusWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadMinusWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getServerIp();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getServerPort();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string server_ip = 1;
   * @return {string}
   */
  proto.game.LoadMinusWebResponse.prototype.getServerIp = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadMinusWebResponse.prototype.setServerIp = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 server_port = 2;
   * @return {number}
   */
  proto.game.LoadMinusWebResponse.prototype.getServerPort = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.LoadMinusWebResponse.prototype.setServerPort = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.LoadBalanceWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.LoadBalanceWebResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.LoadBalanceWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.LoadBalanceWebResponse.displayName = 'proto.game.LoadBalanceWebResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.LoadBalanceWebResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.LoadBalanceWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.LoadBalanceWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.LoadBalanceWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.LoadBalanceWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      unitList: jspb.Message.toObjectList(msg.getUnitList(),
      proto.game.LoadBalanceWebResponse.Unit.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.game.LoadBalanceWebResponse}
   */
  proto.game.LoadBalanceWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.LoadBalanceWebResponse;
    return proto.game.LoadBalanceWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.LoadBalanceWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.LoadBalanceWebResponse}
   */
  proto.game.LoadBalanceWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.LoadBalanceWebResponse.Unit;
        reader.readMessage(value,proto.game.LoadBalanceWebResponse.Unit.deserializeBinaryFromReader);
        msg.addUnit(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.LoadBalanceWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadBalanceWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.LoadBalanceWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadBalanceWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getUnitList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.LoadBalanceWebResponse.Unit.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Unit unit = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.LoadBalanceWebResponse.Unit>}
   */
  proto.game.LoadBalanceWebResponse.prototype.getUnitList = function() {
    return /** @type{!Array.<!proto.game.LoadBalanceWebResponse.Unit>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.LoadBalanceWebResponse.Unit, 1));
  };
  
  
  /** @param {!Array.<!proto.game.LoadBalanceWebResponse.Unit>} value */
  proto.game.LoadBalanceWebResponse.prototype.setUnitList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.LoadBalanceWebResponse.Unit=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.LoadBalanceWebResponse.Unit}
   */
  proto.game.LoadBalanceWebResponse.prototype.addUnit = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.LoadBalanceWebResponse.Unit, opt_index);
  };
  
  
  proto.game.LoadBalanceWebResponse.prototype.clearUnitList = function() {
    this.setUnitList([]);
  };
  
  
  
  /**
   * 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.game.LoadBalanceWebResponse.Unit = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.LoadBalanceWebResponse.Unit.repeatedFields_, null);
  };
  goog.inherits(proto.game.LoadBalanceWebResponse.Unit, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.LoadBalanceWebResponse.Unit.displayName = 'proto.game.LoadBalanceWebResponse.Unit';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.LoadBalanceWebResponse.Unit.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.toObject = function(opt_includeInstance) {
    return proto.game.LoadBalanceWebResponse.Unit.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.LoadBalanceWebResponse.Unit} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.LoadBalanceWebResponse.Unit.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      roomStatus: jspb.Message.getFieldWithDefault(msg, 2, 0),
      playerUuidList: jspb.Message.getField(msg, 3),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      gameUuid: jspb.Message.getFieldWithDefault(msg, 5, ""),
      appUuid: jspb.Message.getFieldWithDefault(msg, 6, ""),
      roomUuid: jspb.Message.getFieldWithDefault(msg, 7, ""),
      st: 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.game.LoadBalanceWebResponse.Unit}
   */
  proto.game.LoadBalanceWebResponse.Unit.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.LoadBalanceWebResponse.Unit;
    return proto.game.LoadBalanceWebResponse.Unit.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.LoadBalanceWebResponse.Unit} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.LoadBalanceWebResponse.Unit}
   */
  proto.game.LoadBalanceWebResponse.Unit.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomStatus(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.addPlayerUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameUuid(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppUuid(value);
        break;
      case 7:
        var value = /** @type {string} */ (reader.readString());
        msg.setRoomUuid(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.LoadBalanceWebResponse.Unit} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadBalanceWebResponse.Unit.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getRoomStatus();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getPlayerUuidList();
    if (f.length > 0) {
      writer.writeRepeatedString(
        3,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getGameUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
    f = this.getAppUuid();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
    f = this.getRoomUuid();
    if (f.length > 0) {
      writer.writeString(
        7,
        f
      );
    }
    f = this.getSt();
    if (f !== 0) {
      writer.writeUint32(
        8,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 room_status = 2;
   * @return {number}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getRoomStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setRoomStatus = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * repeated string player_uuid = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<string>}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getPlayerUuidList = function() {
    return /** @type {!Array.<string>} */ (jspb.Message.getField(this, 3));
  };
  
  
  /** @param {!Array.<string>} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setPlayerUuidList = function(value) {
    jspb.Message.setField(this, 3, value || []);
  };
  
  
  /**
   * @param {!string} value
   * @param {number=} opt_index
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.addPlayerUuid = function(value, opt_index) {
    jspb.Message.addToRepeatedField(this, 3, value, opt_index);
  };
  
  
  proto.game.LoadBalanceWebResponse.Unit.prototype.clearPlayerUuidList = function() {
    this.setPlayerUuidList([]);
  };
  
  
  /**
   * optional string owner_uuid = 4;
   * @return {string}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string game_uuid = 5;
   * @return {string}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getGameUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setGameUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional string app_uuid = 6;
   * @return {string}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getAppUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setAppUuid = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional string room_uuid = 7;
   * @return {string}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getRoomUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
  };
  
  
  /** @param {string} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setRoomUuid = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional uint32 st = 8;
   * @return {number}
   */
  proto.game.LoadBalanceWebResponse.Unit.prototype.getSt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.LoadBalanceWebResponse.Unit.prototype.setSt = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  
  /**
   * 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.game.RunningWebReponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.RunningWebReponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.RunningWebReponse.displayName = 'proto.game.RunningWebReponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.RunningWebReponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.RunningWebReponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.RunningWebReponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.RunningWebReponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      sessions: jspb.Message.getFieldWithDefault(msg, 1, 0),
      players: jspb.Message.getFieldWithDefault(msg, 2, 0),
      tablesInitial: jspb.Message.getFieldWithDefault(msg, 3, 0),
      tablesPlaying: 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.game.RunningWebReponse}
   */
  proto.game.RunningWebReponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.RunningWebReponse;
    return proto.game.RunningWebReponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.RunningWebReponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.RunningWebReponse}
   */
  proto.game.RunningWebReponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSessions(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setPlayers(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setTablesInitial(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setTablesPlaying(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.RunningWebReponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RunningWebReponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.RunningWebReponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RunningWebReponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSessions();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayers();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getTablesInitial();
    if (f !== 0) {
      writer.writeUint32(
        3,
        f
      );
    }
    f = this.getTablesPlaying();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 sessions = 1;
   * @return {number}
   */
  proto.game.RunningWebReponse.prototype.getSessions = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RunningWebReponse.prototype.setSessions = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 players = 2;
   * @return {number}
   */
  proto.game.RunningWebReponse.prototype.getPlayers = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RunningWebReponse.prototype.setPlayers = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional uint32 tables_initial = 3;
   * @return {number}
   */
  proto.game.RunningWebReponse.prototype.getTablesInitial = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RunningWebReponse.prototype.setTablesInitial = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 tables_playing = 4;
   * @return {number}
   */
  proto.game.RunningWebReponse.prototype.getTablesPlaying = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RunningWebReponse.prototype.setTablesPlaying = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.SynchroniseCardsResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SynchroniseCardsResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SynchroniseCardsResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SynchroniseCardsResponse.displayName = 'proto.game.SynchroniseCardsResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SynchroniseCardsResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SynchroniseCardsResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SynchroniseCardsResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SynchroniseCardsResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SynchroniseCardsResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      cardList: jspb.Message.toObjectList(msg.getCardList(),
      proto.game.Card.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.game.SynchroniseCardsResponse}
   */
  proto.game.SynchroniseCardsResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SynchroniseCardsResponse;
    return proto.game.SynchroniseCardsResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SynchroniseCardsResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SynchroniseCardsResponse}
   */
  proto.game.SynchroniseCardsResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SynchroniseCardsResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseCardsResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SynchroniseCardsResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseCardsResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Card card = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SynchroniseCardsResponse.prototype.getCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SynchroniseCardsResponse.prototype.setCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SynchroniseCardsResponse.prototype.addCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SynchroniseCardsResponse.prototype.clearCardList = function() {
    this.setCardList([]);
  };
  
  
  
  /**
   * 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.game.ExistRoomWebRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ExistRoomWebRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ExistRoomWebRequest.displayName = 'proto.game.ExistRoomWebRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ExistRoomWebRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ExistRoomWebRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ExistRoomWebRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ExistRoomWebRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 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.game.ExistRoomWebRequest}
   */
  proto.game.ExistRoomWebRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ExistRoomWebRequest;
    return proto.game.ExistRoomWebRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ExistRoomWebRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ExistRoomWebRequest}
   */
  proto.game.ExistRoomWebRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ExistRoomWebRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExistRoomWebRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ExistRoomWebRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExistRoomWebRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.ExistRoomWebRequest.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ExistRoomWebRequest.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.ExistRoomWebResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ExistRoomWebResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ExistRoomWebResponse.displayName = 'proto.game.ExistRoomWebResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ExistRoomWebResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ExistRoomWebResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ExistRoomWebResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ExistRoomWebResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 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.game.ExistRoomWebResponse}
   */
  proto.game.ExistRoomWebResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ExistRoomWebResponse;
    return proto.game.ExistRoomWebResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ExistRoomWebResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ExistRoomWebResponse}
   */
  proto.game.ExistRoomWebResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setFlag(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ExistRoomWebResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExistRoomWebResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ExistRoomWebResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ExistRoomWebResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f) {
      writer.writeBool(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional bool flag = 1;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.game.ExistRoomWebResponse.prototype.getFlag = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 1, false));
  };
  
  
  /** @param {boolean} value */
  proto.game.ExistRoomWebResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.HeartbeatRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.HeartbeatRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.HeartbeatRequest.displayName = 'proto.game.HeartbeatRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.HeartbeatRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.HeartbeatRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.HeartbeatRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.HeartbeatRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.HeartbeatRequest}
   */
  proto.game.HeartbeatRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.HeartbeatRequest;
    return proto.game.HeartbeatRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.HeartbeatRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.HeartbeatRequest}
   */
  proto.game.HeartbeatRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.HeartbeatRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.HeartbeatRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.HeartbeatRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.HeartbeatRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
  };
  
  
  
  /**
   * 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.game.HeartbeatResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.HeartbeatResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.HeartbeatResponse.displayName = 'proto.game.HeartbeatResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.HeartbeatResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.HeartbeatResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.HeartbeatResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.HeartbeatResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
  
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.HeartbeatResponse}
   */
  proto.game.HeartbeatResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.HeartbeatResponse;
    return proto.game.HeartbeatResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.HeartbeatResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.HeartbeatResponse}
   */
  proto.game.HeartbeatResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.HeartbeatResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.HeartbeatResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.HeartbeatResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.HeartbeatResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
  };
  
  
  
  /**
   * 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.game.SynchroniseScoreResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SynchroniseScoreResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SynchroniseScoreResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SynchroniseScoreResponse.displayName = 'proto.game.SynchroniseScoreResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SynchroniseScoreResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SynchroniseScoreResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SynchroniseScoreResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SynchroniseScoreResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SynchroniseScoreResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      scoreDataList: jspb.Message.toObjectList(msg.getScoreDataList(),
      proto.game.SynchroniseScoreResponse.ScoreData.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.game.SynchroniseScoreResponse}
   */
  proto.game.SynchroniseScoreResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SynchroniseScoreResponse;
    return proto.game.SynchroniseScoreResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SynchroniseScoreResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SynchroniseScoreResponse}
   */
  proto.game.SynchroniseScoreResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.SynchroniseScoreResponse.ScoreData;
        reader.readMessage(value,proto.game.SynchroniseScoreResponse.ScoreData.deserializeBinaryFromReader);
        msg.addScoreData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SynchroniseScoreResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseScoreResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SynchroniseScoreResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseScoreResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getScoreDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.SynchroniseScoreResponse.ScoreData.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated ScoreData score_data = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SynchroniseScoreResponse.ScoreData>}
   */
  proto.game.SynchroniseScoreResponse.prototype.getScoreDataList = function() {
    return /** @type{!Array.<!proto.game.SynchroniseScoreResponse.ScoreData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SynchroniseScoreResponse.ScoreData, 1));
  };
  
  
  /** @param {!Array.<!proto.game.SynchroniseScoreResponse.ScoreData>} value */
  proto.game.SynchroniseScoreResponse.prototype.setScoreDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.SynchroniseScoreResponse.ScoreData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SynchroniseScoreResponse.ScoreData}
   */
  proto.game.SynchroniseScoreResponse.prototype.addScoreData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.SynchroniseScoreResponse.ScoreData, opt_index);
  };
  
  
  proto.game.SynchroniseScoreResponse.prototype.clearScoreDataList = function() {
    this.setScoreDataList([]);
  };
  
  
  
  /**
   * 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.game.SynchroniseScoreResponse.ScoreData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SynchroniseScoreResponse.ScoreData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SynchroniseScoreResponse.ScoreData.displayName = 'proto.game.SynchroniseScoreResponse.ScoreData';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SynchroniseScoreResponse.ScoreData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SynchroniseScoreResponse.ScoreData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.toObject = function(includeInstance, msg) {
    var f, obj = {
      seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      score: 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.game.SynchroniseScoreResponse.ScoreData}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SynchroniseScoreResponse.ScoreData;
    return proto.game.SynchroniseScoreResponse.ScoreData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SynchroniseScoreResponse.ScoreData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SynchroniseScoreResponse.ScoreData}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.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.setSeat(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SynchroniseScoreResponse.ScoreData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseScoreResponse.ScoreData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSeat();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional int32 seat = 1;
   * @return {number}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional int32 score = 2;
   * @return {number}
   */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SynchroniseScoreResponse.ScoreData.prototype.setScore = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.Card = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.Card, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.Card.displayName = 'proto.game.Card';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.Card.prototype.toObject = function(opt_includeInstance) {
    return proto.game.Card.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.Card} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.Card.toObject = function(includeInstance, msg) {
    var f, obj = {
      card: jspb.Message.getFieldWithDefault(msg, 1, 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.game.Card}
   */
  proto.game.Card.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.Card;
    return proto.game.Card.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.Card} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.Card}
   */
  proto.game.Card.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.Card} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Card.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.Card.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Card.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCard();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 card = 1;
   * @return {number}
   */
  proto.game.Card.prototype.getCard = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.Card.prototype.setCard = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.CardGroup = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.CardGroup.repeatedFields_, null);
  };
  goog.inherits(proto.game.CardGroup, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.CardGroup.displayName = 'proto.game.CardGroup';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.CardGroup.repeatedFields_ = [2];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.CardGroup.prototype.toObject = function(opt_includeInstance) {
    return proto.game.CardGroup.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.CardGroup} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.CardGroup.toObject = function(includeInstance, msg) {
    var f, obj = {
      triggerSeat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      cardList: jspb.Message.toObjectList(msg.getCardList(),
      proto.game.Card.toObject, includeInstance),
      type: 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.game.CardGroup}
   */
  proto.game.CardGroup.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.CardGroup;
    return proto.game.CardGroup.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.CardGroup} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.CardGroup}
   */
  proto.game.CardGroup.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.setTriggerSeat(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCard(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setType(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.CardGroup} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CardGroup.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.CardGroup.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.CardGroup.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getTriggerSeat();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getType();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
  };
  
  
  /**
   * optional int32 trigger_seat = 1;
   * @return {number}
   */
  proto.game.CardGroup.prototype.getTriggerSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.CardGroup.prototype.setTriggerSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated Card card = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.CardGroup.prototype.getCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.CardGroup.prototype.setCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.CardGroup.prototype.addCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.CardGroup.prototype.clearCardList = function() {
    this.setCardList([]);
  };
  
  
  /**
   * optional string type = 3;
   * @return {string}
   */
  proto.game.CardGroup.prototype.getType = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.CardGroup.prototype.setType = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  
  /**
   * 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.game.Dice = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.Dice, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.Dice.displayName = 'proto.game.Dice';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.Dice.prototype.toObject = function(opt_includeInstance) {
    return proto.game.Dice.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.Dice} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.Dice.toObject = function(includeInstance, msg) {
    var f, obj = {
      dice1: jspb.Message.getFieldWithDefault(msg, 1, 0),
      dice2: 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.game.Dice}
   */
  proto.game.Dice.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.Dice;
    return proto.game.Dice.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.Dice} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.Dice}
   */
  proto.game.Dice.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setDice1(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setDice2(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.Dice} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Dice.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.Dice.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Dice.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getDice1();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getDice2();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 dice1 = 1;
   * @return {number}
   */
  proto.game.Dice.prototype.getDice1 = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.Dice.prototype.setDice1 = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 dice2 = 2;
   * @return {number}
   */
  proto.game.Dice.prototype.getDice2 = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.Dice.prototype.setDice2 = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.Prompt = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.Prompt.repeatedFields_, null);
  };
  goog.inherits(proto.game.Prompt, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.Prompt.displayName = 'proto.game.Prompt';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.Prompt.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.Prompt.prototype.toObject = function(opt_includeInstance) {
    return proto.game.Prompt.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.Prompt} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.Prompt.toObject = function(includeInstance, msg) {
    var f, obj = {
      actionId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      prompt: jspb.Message.getFieldWithDefault(msg, 2, 0),
      refCardList: jspb.Message.toObjectList(msg.getRefCardList(),
      proto.game.Card.toObject, includeInstance),
      opCard: (f = msg.getOpCard()) && proto.game.Card.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.game.Prompt}
   */
  proto.game.Prompt.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.Prompt;
    return proto.game.Prompt.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.Prompt} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.Prompt}
   */
  proto.game.Prompt.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setActionId(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setPrompt(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addRefCard(value);
        break;
      case 4:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setOpCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.Prompt} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Prompt.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.Prompt.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.Prompt.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getActionId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPrompt();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getRefCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getOpCard();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 action_id = 1;
   * @return {number}
   */
  proto.game.Prompt.prototype.getActionId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.Prompt.prototype.setActionId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 prompt = 2;
   * @return {number}
   */
  proto.game.Prompt.prototype.getPrompt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.Prompt.prototype.setPrompt = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * repeated Card ref_card = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.Prompt.prototype.getRefCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.Prompt.prototype.setRefCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.Prompt.prototype.addRefCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.Prompt.prototype.clearRefCardList = function() {
    this.setRefCardList([]);
  };
  
  
  /**
   * optional Card op_card = 4;
   * @return {?proto.game.Card}
   */
  proto.game.Prompt.prototype.getOpCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 4));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.Prompt.prototype.setOpCard = function(value) {
    jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  proto.game.Prompt.prototype.clearOpCard = function() {
    this.setOpCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.Prompt.prototype.hasOpCard = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  
  /**
   * 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.game.DealResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DealResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DealResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DealResponse.displayName = 'proto.game.DealResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DealResponse.repeatedFields_ = [3,4];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DealResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DealResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DealResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DealResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      dealerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      dice: (f = msg.getDice()) && proto.game.Dice.toObject(includeInstance, f),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      promptList: jspb.Message.toObjectList(msg.getPromptList(),
      proto.game.Prompt.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.game.DealResponse}
   */
  proto.game.DealResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DealResponse;
    return proto.game.DealResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DealResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DealResponse}
   */
  proto.game.DealResponse.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.setDealerUuid(value);
        break;
      case 2:
        var value = new proto.game.Dice;
        reader.readMessage(value,proto.game.Dice.deserializeBinaryFromReader);
        msg.setDice(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 4:
        var value = new proto.game.Prompt;
        reader.readMessage(value,proto.game.Prompt.deserializeBinaryFromReader);
        msg.addPrompt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DealResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DealResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DealResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DealResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getDealerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getDice();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.game.Dice.serializeBinaryToWriter
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getPromptList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        4,
        f,
        proto.game.Prompt.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string dealer_uuid = 1;
   * @return {string}
   */
  proto.game.DealResponse.prototype.getDealerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DealResponse.prototype.setDealerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional Dice dice = 2;
   * @return {?proto.game.Dice}
   */
  proto.game.DealResponse.prototype.getDice = function() {
    return /** @type{?proto.game.Dice} */ (
      jspb.Message.getWrapperField(this, proto.game.Dice, 2));
  };
  
  
  /** @param {?proto.game.Dice|undefined} value */
  proto.game.DealResponse.prototype.setDice = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.game.DealResponse.prototype.clearDice = function() {
    this.setDice(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.DealResponse.prototype.hasDice = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * repeated Card cards_in_hand = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.DealResponse.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.DealResponse.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.DealResponse.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.DealResponse.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * repeated Prompt prompt = 4;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Prompt>}
   */
  proto.game.DealResponse.prototype.getPromptList = function() {
    return /** @type{!Array.<!proto.game.Prompt>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Prompt, 4));
  };
  
  
  /** @param {!Array.<!proto.game.Prompt>} value */
  proto.game.DealResponse.prototype.setPromptList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 4, value);
  };
  
  
  /**
   * @param {!proto.game.Prompt=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Prompt}
   */
  proto.game.DealResponse.prototype.addPrompt = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.game.Prompt, opt_index);
  };
  
  
  proto.game.DealResponse.prototype.clearPromptList = function() {
    this.setPromptList([]);
  };
  
  
  
  /**
   * 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.game.DrawResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DrawResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DrawResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DrawResponse.displayName = 'proto.game.DrawResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DrawResponse.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DrawResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DrawResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DrawResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DrawResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      card: (f = msg.getCard()) && proto.game.Card.toObject(includeInstance, f),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      promptList: jspb.Message.toObjectList(msg.getPromptList(),
      proto.game.Prompt.toObject, includeInstance),
      restCards: 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.game.DrawResponse}
   */
  proto.game.DrawResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DrawResponse;
    return proto.game.DrawResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DrawResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DrawResponse}
   */
  proto.game.DrawResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setCard(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = new proto.game.Prompt;
        reader.readMessage(value,proto.game.Prompt.deserializeBinaryFromReader);
        msg.addPrompt(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRestCards(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DrawResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DrawResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCard();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getPromptList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Prompt.serializeBinaryToWriter
      );
    }
    f = this.getRestCards();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional Card card = 1;
   * @return {?proto.game.Card}
   */
  proto.game.DrawResponse.prototype.getCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.DrawResponse.prototype.setCard = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.game.DrawResponse.prototype.clearCard = function() {
    this.setCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.DrawResponse.prototype.hasCard = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.DrawResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DrawResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * repeated Prompt prompt = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Prompt>}
   */
  proto.game.DrawResponse.prototype.getPromptList = function() {
    return /** @type{!Array.<!proto.game.Prompt>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Prompt, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Prompt>} value */
  proto.game.DrawResponse.prototype.setPromptList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Prompt=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Prompt}
   */
  proto.game.DrawResponse.prototype.addPrompt = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Prompt, opt_index);
  };
  
  
  proto.game.DrawResponse.prototype.clearPromptList = function() {
    this.setPromptList([]);
  };
  
  
  /**
   * optional uint32 rest_cards = 4;
   * @return {number}
   */
  proto.game.DrawResponse.prototype.getRestCards = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DrawResponse.prototype.setRestCards = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.DiscardRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DiscardRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DiscardRequest.displayName = 'proto.game.DiscardRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DiscardRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DiscardRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DiscardRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DiscardRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      card: (f = msg.getCard()) && proto.game.Card.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.game.DiscardRequest}
   */
  proto.game.DiscardRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DiscardRequest;
    return proto.game.DiscardRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DiscardRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DiscardRequest}
   */
  proto.game.DiscardRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DiscardRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DiscardRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCard();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Card card = 1;
   * @return {?proto.game.Card}
   */
  proto.game.DiscardRequest.prototype.getCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.DiscardRequest.prototype.setCard = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.game.DiscardRequest.prototype.clearCard = function() {
    this.setCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.DiscardRequest.prototype.hasCard = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  
  /**
   * 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.game.DiscardResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DiscardResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DiscardResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DiscardResponse.displayName = 'proto.game.DiscardResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DiscardResponse.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DiscardResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DiscardResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DiscardResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DiscardResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      card: (f = msg.getCard()) && proto.game.Card.toObject(includeInstance, f),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      promptList: jspb.Message.toObjectList(msg.getPromptList(),
      proto.game.Prompt.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.game.DiscardResponse}
   */
  proto.game.DiscardResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DiscardResponse;
    return proto.game.DiscardResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DiscardResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DiscardResponse}
   */
  proto.game.DiscardResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setCard(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = new proto.game.Prompt;
        reader.readMessage(value,proto.game.Prompt.deserializeBinaryFromReader);
        msg.addPrompt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DiscardResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DiscardResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCard();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getPromptList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Prompt.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Card card = 1;
   * @return {?proto.game.Card}
   */
  proto.game.DiscardResponse.prototype.getCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.DiscardResponse.prototype.setCard = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.game.DiscardResponse.prototype.clearCard = function() {
    this.setCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.DiscardResponse.prototype.hasCard = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.DiscardResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DiscardResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * repeated Prompt prompt = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Prompt>}
   */
  proto.game.DiscardResponse.prototype.getPromptList = function() {
    return /** @type{!Array.<!proto.game.Prompt>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Prompt, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Prompt>} value */
  proto.game.DiscardResponse.prototype.setPromptList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Prompt=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Prompt}
   */
  proto.game.DiscardResponse.prototype.addPrompt = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Prompt, opt_index);
  };
  
  
  proto.game.DiscardResponse.prototype.clearPromptList = function() {
    this.setPromptList([]);
  };
  
  
  
  /**
   * 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.game.ReadyHandResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ReadyHandResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.ReadyHandResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReadyHandResponse.displayName = 'proto.game.ReadyHandResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ReadyHandResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReadyHandResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReadyHandResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReadyHandResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReadyHandResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      cardList: jspb.Message.toObjectList(msg.getCardList(),
      proto.game.Card.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.game.ReadyHandResponse}
   */
  proto.game.ReadyHandResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReadyHandResponse;
    return proto.game.ReadyHandResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReadyHandResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReadyHandResponse}
   */
  proto.game.ReadyHandResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReadyHandResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyHandResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReadyHandResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReadyHandResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Card card = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReadyHandResponse.prototype.getCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReadyHandResponse.prototype.setCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReadyHandResponse.prototype.addCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReadyHandResponse.prototype.clearCardList = function() {
    this.setCardList([]);
  };
  
  
  
  /**
   * 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.game.ActionRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.ActionRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ActionRequest.displayName = 'proto.game.ActionRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ActionRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ActionRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ActionRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ActionRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      actionId: jspb.Message.getFieldWithDefault(msg, 1, 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.game.ActionRequest}
   */
  proto.game.ActionRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ActionRequest;
    return proto.game.ActionRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ActionRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ActionRequest}
   */
  proto.game.ActionRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setActionId(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ActionRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ActionRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ActionRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ActionRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getActionId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 action_id = 1;
   * @return {number}
   */
  proto.game.ActionRequest.prototype.getActionId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ActionRequest.prototype.setActionId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  
  /**
   * 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.game.ActionResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ActionResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.ActionResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ActionResponse.displayName = 'proto.game.ActionResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ActionResponse.repeatedFields_ = [1,7];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ActionResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ActionResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ActionResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ActionResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      refCardList: jspb.Message.toObjectList(msg.getRefCardList(),
      proto.game.Card.toObject, includeInstance),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      activeCard: (f = msg.getActiveCard()) && proto.game.Card.toObject(includeInstance, f),
      activeType: jspb.Message.getFieldWithDefault(msg, 4, 0),
      triggerSeat: jspb.Message.getFieldWithDefault(msg, 5, 0),
      winFlag: jspb.Message.getFieldWithDefault(msg, 6, ""),
      promptList: jspb.Message.toObjectList(msg.getPromptList(),
      proto.game.Prompt.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.game.ActionResponse}
   */
  proto.game.ActionResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ActionResponse;
    return proto.game.ActionResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ActionResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ActionResponse}
   */
  proto.game.ActionResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addRefCard(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setActiveCard(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setActiveType(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setTriggerSeat(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setWinFlag(value);
        break;
      case 7:
        var value = new proto.game.Prompt;
        reader.readMessage(value,proto.game.Prompt.deserializeBinaryFromReader);
        msg.addPrompt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ActionResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ActionResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ActionResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ActionResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRefCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getActiveCard();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getActiveType();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getTriggerSeat();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getWinFlag();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
    f = this.getPromptList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        7,
        f,
        proto.game.Prompt.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Card ref_card = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ActionResponse.prototype.getRefCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ActionResponse.prototype.setRefCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ActionResponse.prototype.addRefCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ActionResponse.prototype.clearRefCardList = function() {
    this.setRefCardList([]);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.ActionResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ActionResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional Card active_card = 3;
   * @return {?proto.game.Card}
   */
  proto.game.ActionResponse.prototype.getActiveCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.ActionResponse.prototype.setActiveCard = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.game.ActionResponse.prototype.clearActiveCard = function() {
    this.setActiveCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.ActionResponse.prototype.hasActiveCard = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional uint32 active_type = 4;
   * @return {number}
   */
  proto.game.ActionResponse.prototype.getActiveType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ActionResponse.prototype.setActiveType = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 trigger_seat = 5;
   * @return {number}
   */
  proto.game.ActionResponse.prototype.getTriggerSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ActionResponse.prototype.setTriggerSeat = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional string win_flag = 6;
   * @return {string}
   */
  proto.game.ActionResponse.prototype.getWinFlag = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ActionResponse.prototype.setWinFlag = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * repeated Prompt prompt = 7;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Prompt>}
   */
  proto.game.ActionResponse.prototype.getPromptList = function() {
    return /** @type{!Array.<!proto.game.Prompt>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Prompt, 7));
  };
  
  
  /** @param {!Array.<!proto.game.Prompt>} value */
  proto.game.ActionResponse.prototype.setPromptList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 7, value);
  };
  
  
  /**
   * @param {!proto.game.Prompt=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Prompt}
   */
  proto.game.ActionResponse.prototype.addPrompt = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.game.Prompt, opt_index);
  };
  
  
  proto.game.ActionResponse.prototype.clearPromptList = function() {
    this.setPromptList([]);
  };
  
  
  
  /**
   * 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.game.PromptResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.PromptResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.PromptResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.PromptResponse.displayName = 'proto.game.PromptResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.PromptResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.PromptResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.PromptResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.PromptResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.PromptResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      promptList: jspb.Message.toObjectList(msg.getPromptList(),
      proto.game.Prompt.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.game.PromptResponse}
   */
  proto.game.PromptResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.PromptResponse;
    return proto.game.PromptResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.PromptResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.PromptResponse}
   */
  proto.game.PromptResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Prompt;
        reader.readMessage(value,proto.game.Prompt.deserializeBinaryFromReader);
        msg.addPrompt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.PromptResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PromptResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.PromptResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.PromptResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPromptList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Prompt.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Prompt prompt = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Prompt>}
   */
  proto.game.PromptResponse.prototype.getPromptList = function() {
    return /** @type{!Array.<!proto.game.Prompt>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Prompt, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Prompt>} value */
  proto.game.PromptResponse.prototype.setPromptList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Prompt=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Prompt}
   */
  proto.game.PromptResponse.prototype.addPrompt = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Prompt, opt_index);
  };
  
  
  proto.game.PromptResponse.prototype.clearPromptList = function() {
    this.setPromptList([]);
  };
  
  
  
  /**
   * 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.game.ReconnectResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ReconnectResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.ReconnectResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReconnectResponse.displayName = 'proto.game.ReconnectResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ReconnectResponse.repeatedFields_ = [11];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReconnectResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReconnectResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReconnectResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReconnectResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      kwargs: jspb.Message.getFieldWithDefault(msg, 2, ""),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      roomStatus: jspb.Message.getFieldWithDefault(msg, 4, 0),
      currentRound: jspb.Message.getFieldWithDefault(msg, 5, 0),
      dealer: jspb.Message.getFieldWithDefault(msg, 6, 0),
      activeSeat: jspb.Message.getFieldWithDefault(msg, 7, 0),
      discardSeat: jspb.Message.getFieldWithDefault(msg, 8, 0),
      restCards: jspb.Message.getFieldWithDefault(msg, 9, 0),
      cardDraw: jspb.Message.getFieldWithDefault(msg, 10, 0),
      playerList: jspb.Message.toObjectList(msg.getPlayerList(),
      proto.game.ReconnectResponse.Player.toObject, includeInstance),
      code: jspb.Message.getFieldWithDefault(msg, 12, 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.game.ReconnectResponse}
   */
  proto.game.ReconnectResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReconnectResponse;
    return proto.game.ReconnectResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReconnectResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReconnectResponse}
   */
  proto.game.ReconnectResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setKwargs(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomStatus(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCurrentRound(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setDealer(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setActiveSeat(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setDiscardSeat(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRestCards(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCardDraw(value);
        break;
      case 11:
        var value = new proto.game.ReconnectResponse.Player;
        reader.readMessage(value,proto.game.ReconnectResponse.Player.deserializeBinaryFromReader);
        msg.addPlayer(value);
        break;
      case 12:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReconnectResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReconnectResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getKwargs();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getRoomStatus();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getCurrentRound();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getDealer();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = this.getActiveSeat();
    if (f !== 0) {
      writer.writeInt32(
        7,
        f
      );
    }
    f = this.getDiscardSeat();
    if (f !== 0) {
      writer.writeInt32(
        8,
        f
      );
    }
    f = this.getRestCards();
    if (f !== 0) {
      writer.writeUint32(
        9,
        f
      );
    }
    f = this.getCardDraw();
    if (f !== 0) {
      writer.writeUint32(
        10,
        f
      );
    }
    f = this.getPlayerList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        11,
        f,
        proto.game.ReconnectResponse.Player.serializeBinaryToWriter
      );
    }
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        12,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string kwargs = 2;
   * @return {string}
   */
  proto.game.ReconnectResponse.prototype.getKwargs = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectResponse.prototype.setKwargs = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string owner_uuid = 3;
   * @return {string}
   */
  proto.game.ReconnectResponse.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectResponse.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 room_status = 4;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getRoomStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setRoomStatus = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 current_round = 5;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getCurrentRound = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setCurrentRound = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional int32 dealer = 6;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getDealer = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setDealer = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional int32 active_seat = 7;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getActiveSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setActiveSeat = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional int32 discard_seat = 8;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getDiscardSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setDiscardSeat = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional uint32 rest_cards = 9;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getRestCards = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setRestCards = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * optional uint32 card_draw = 10;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getCardDraw = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setCardDraw = function(value) {
    jspb.Message.setField(this, 10, value);
  };
  
  
  /**
   * repeated Player player = 11;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.ReconnectResponse.Player>}
   */
  proto.game.ReconnectResponse.prototype.getPlayerList = function() {
    return /** @type{!Array.<!proto.game.ReconnectResponse.Player>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.ReconnectResponse.Player, 11));
  };
  
  
  /** @param {!Array.<!proto.game.ReconnectResponse.Player>} value */
  proto.game.ReconnectResponse.prototype.setPlayerList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 11, value);
  };
  
  
  /**
   * @param {!proto.game.ReconnectResponse.Player=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.ReconnectResponse.Player}
   */
  proto.game.ReconnectResponse.prototype.addPlayer = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.game.ReconnectResponse.Player, opt_index);
  };
  
  
  proto.game.ReconnectResponse.prototype.clearPlayerList = function() {
    this.setPlayerList([]);
  };
  
  
  /**
   * optional uint32 code = 12;
   * @return {number}
   */
  proto.game.ReconnectResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 12, value);
  };
  
  
  
  /**
   * 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.game.ReconnectResponse.Player = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ReconnectResponse.Player.repeatedFields_, null);
  };
  goog.inherits(proto.game.ReconnectResponse.Player, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReconnectResponse.Player.displayName = 'proto.game.ReconnectResponse.Player';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ReconnectResponse.Player.repeatedFields_ = [7,8,9,10,11,12,13];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReconnectResponse.Player.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReconnectResponse.Player.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReconnectResponse.Player} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReconnectResponse.Player.toObject = function(includeInstance, msg) {
    var f, obj = {
      seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      info: jspb.Message.getFieldWithDefault(msg, 3, ""),
      status: jspb.Message.getFieldWithDefault(msg, 4, 0),
      isOnline: jspb.Message.getFieldWithDefault(msg, 5, 0),
      totalScore: jspb.Message.getFieldWithDefault(msg, 6, 0),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      cardsDiscardList: jspb.Message.toObjectList(msg.getCardsDiscardList(),
      proto.game.Card.toObject, includeInstance),
      cardsKongExposedList: jspb.Message.toObjectList(msg.getCardsKongExposedList(),
      proto.game.Card.toObject, includeInstance),
      cardsKongConcealedList: jspb.Message.toObjectList(msg.getCardsKongConcealedList(),
      proto.game.Card.toObject, includeInstance),
      cardsPongList: jspb.Message.toObjectList(msg.getCardsPongList(),
      proto.game.Card.toObject, includeInstance),
      cardsChowList: jspb.Message.toObjectList(msg.getCardsChowList(),
      proto.game.Card.toObject, includeInstance),
      cardsGroupListList: jspb.Message.toObjectList(msg.getCardsGroupListList(),
      proto.game.CardGroup.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.game.ReconnectResponse.Player}
   */
  proto.game.ReconnectResponse.Player.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReconnectResponse.Player;
    return proto.game.ReconnectResponse.Player.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReconnectResponse.Player} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReconnectResponse.Player}
   */
  proto.game.ReconnectResponse.Player.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSeat(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setInfo(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setStatus(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsOnline(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotalScore(value);
        break;
      case 7:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 8:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsDiscard(value);
        break;
      case 9:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsKongExposed(value);
        break;
      case 10:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsKongConcealed(value);
        break;
      case 11:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsPong(value);
        break;
      case 12:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsChow(value);
        break;
      case 13:
        var value = new proto.game.CardGroup;
        reader.readMessage(value,proto.game.CardGroup.deserializeBinaryFromReader);
        msg.addCardsGroupList(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReconnectResponse.Player} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectResponse.Player.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReconnectResponse.Player.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectResponse.Player.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSeat();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getInfo();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getStatus();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getIsOnline();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getTotalScore();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        7,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsDiscardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        8,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsKongExposedList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        9,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsKongConcealedList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        10,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsPongList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        11,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsChowList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        12,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsGroupListList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        13,
        f,
        proto.game.CardGroup.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 seat = 1;
   * @return {number}
   */
  proto.game.ReconnectResponse.Player.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.Player.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.ReconnectResponse.Player.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectResponse.Player.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string info = 3;
   * @return {string}
   */
  proto.game.ReconnectResponse.Player.prototype.getInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectResponse.Player.prototype.setInfo = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 status = 4;
   * @return {number}
   */
  proto.game.ReconnectResponse.Player.prototype.getStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.Player.prototype.setStatus = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 is_online = 5;
   * @return {number}
   */
  proto.game.ReconnectResponse.Player.prototype.getIsOnline = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.Player.prototype.setIsOnline = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional int32 total_score = 6;
   * @return {number}
   */
  proto.game.ReconnectResponse.Player.prototype.getTotalScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectResponse.Player.prototype.setTotalScore = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * repeated Card cards_in_hand = 7;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 7));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 7, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * repeated Card cards_discard = 8;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsDiscardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 8));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsDiscardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 8, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsDiscard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsDiscardList = function() {
    this.setCardsDiscardList([]);
  };
  
  
  /**
   * repeated Card cards_kong_exposed = 9;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsKongExposedList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 9));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsKongExposedList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 9, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsKongExposed = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsKongExposedList = function() {
    this.setCardsKongExposedList([]);
  };
  
  
  /**
   * repeated Card cards_kong_concealed = 10;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsKongConcealedList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 10));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsKongConcealedList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 10, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsKongConcealed = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsKongConcealedList = function() {
    this.setCardsKongConcealedList([]);
  };
  
  
  /**
   * repeated Card cards_pong = 11;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsPongList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 11));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsPongList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 11, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsPong = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsPongList = function() {
    this.setCardsPongList([]);
  };
  
  
  /**
   * repeated Card cards_chow = 12;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsChowList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 12));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsChowList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 12, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsChow = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsChowList = function() {
    this.setCardsChowList([]);
  };
  
  
  /**
   * repeated CardGroup cards_group_list = 13;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.CardGroup>}
   */
  proto.game.ReconnectResponse.Player.prototype.getCardsGroupListList = function() {
    return /** @type{!Array.<!proto.game.CardGroup>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.CardGroup, 13));
  };
  
  
  /** @param {!Array.<!proto.game.CardGroup>} value */
  proto.game.ReconnectResponse.Player.prototype.setCardsGroupListList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 13, value);
  };
  
  
  /**
   * @param {!proto.game.CardGroup=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.CardGroup}
   */
  proto.game.ReconnectResponse.Player.prototype.addCardsGroupList = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.game.CardGroup, opt_index);
  };
  
  
  proto.game.ReconnectResponse.Player.prototype.clearCardsGroupListList = function() {
    this.setCardsGroupListList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoundResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundResponse.displayName = 'proto.game.SettleForRoundResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundResponse.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      winType: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerDataList: jspb.Message.toObjectList(msg.getPlayerDataList(),
      proto.game.SettleForRoundResponse.PlayerData.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.game.SettleForRoundResponse}
   */
  proto.game.SettleForRoundResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundResponse;
    return proto.game.SettleForRoundResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundResponse}
   */
  proto.game.SettleForRoundResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setWinType(value);
        break;
      case 3:
        var value = new proto.game.SettleForRoundResponse.PlayerData;
        reader.readMessage(value,proto.game.SettleForRoundResponse.PlayerData.deserializeBinaryFromReader);
        msg.addPlayerData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getWinType();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.SettleForRoundResponse.PlayerData.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 win_type = 1;
   * @return {number}
   */
  proto.game.SettleForRoundResponse.prototype.getWinType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundResponse.prototype.setWinType = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated PlayerData player_data = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SettleForRoundResponse.PlayerData>}
   */
  proto.game.SettleForRoundResponse.prototype.getPlayerDataList = function() {
    return /** @type{!Array.<!proto.game.SettleForRoundResponse.PlayerData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SettleForRoundResponse.PlayerData, 3));
  };
  
  
  /** @param {!Array.<!proto.game.SettleForRoundResponse.PlayerData>} value */
  proto.game.SettleForRoundResponse.prototype.setPlayerDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.SettleForRoundResponse.PlayerData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SettleForRoundResponse.PlayerData}
   */
  proto.game.SettleForRoundResponse.prototype.addPlayerData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.SettleForRoundResponse.PlayerData, opt_index);
  };
  
  
  proto.game.SettleForRoundResponse.prototype.clearPlayerDataList = function() {
    this.setPlayerDataList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoundResponse.PlayerData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundResponse.PlayerData.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundResponse.PlayerData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundResponse.PlayerData.displayName = 'proto.game.SettleForRoundResponse.PlayerData';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundResponse.PlayerData.repeatedFields_ = [2,3,10];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundResponse.PlayerData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundResponse.PlayerData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundResponse.PlayerData.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      cardsGroupList: jspb.Message.toObjectList(msg.getCardsGroupList(),
      proto.game.Card.toObject, includeInstance),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      winCard: (f = msg.getWinCard()) && proto.game.Card.toObject(includeInstance, f),
      score: jspb.Message.getFieldWithDefault(msg, 6, 0),
      total: jspb.Message.getFieldWithDefault(msg, 7, 0),
      winType: jspb.Message.getFieldWithDefault(msg, 8, 0),
      winFlag: jspb.Message.getFieldWithDefault(msg, 9, ""),
      cardsGroupListList: jspb.Message.toObjectList(msg.getCardsGroupListList(),
      proto.game.CardGroup.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.game.SettleForRoundResponse.PlayerData}
   */
  proto.game.SettleForRoundResponse.PlayerData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundResponse.PlayerData;
    return proto.game.SettleForRoundResponse.PlayerData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundResponse.PlayerData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundResponse.PlayerData}
   */
  proto.game.SettleForRoundResponse.PlayerData.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.setPlayerUuid(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsGroup(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 5:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setWinCard(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotal(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setWinType(value);
        break;
      case 9:
        var value = /** @type {string} */ (reader.readString());
        msg.setWinFlag(value);
        break;
      case 10:
        var value = new proto.game.CardGroup;
        reader.readMessage(value,proto.game.CardGroup.deserializeBinaryFromReader);
        msg.addCardsGroupList(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundResponse.PlayerData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundResponse.PlayerData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getCardsGroupList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getWinCard();
    if (f != null) {
      writer.writeMessage(
        5,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = this.getTotal();
    if (f !== 0) {
      writer.writeInt32(
        7,
        f
      );
    }
    f = this.getWinType();
    if (f !== 0) {
      writer.writeInt32(
        8,
        f
      );
    }
    f = this.getWinFlag();
    if (f.length > 0) {
      writer.writeString(
        9,
        f
      );
    }
    f = this.getCardsGroupListList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        10,
        f,
        proto.game.CardGroup.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated Card cards_group = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getCardsGroupList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setCardsGroupList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.addCardsGroup = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundResponse.PlayerData.prototype.clearCardsGroupList = function() {
    this.setCardsGroupList([]);
  };
  
  
  /**
   * repeated Card cards_in_hand = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundResponse.PlayerData.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * optional Card win_card = 5;
   * @return {?proto.game.Card}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getWinCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 5));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setWinCard = function(value) {
    jspb.Message.setWrapperField(this, 5, value);
  };
  
  
  proto.game.SettleForRoundResponse.PlayerData.prototype.clearWinCard = function() {
    this.setWinCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.hasWinCard = function() {
    return jspb.Message.getField(this, 5) != null;
  };
  
  
  /**
   * optional int32 score = 6;
   * @return {number}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setScore = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional int32 total = 7;
   * @return {number}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getTotal = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setTotal = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional int32 win_type = 8;
   * @return {number}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getWinType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setWinType = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional string win_flag = 9;
   * @return {string}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getWinFlag = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setWinFlag = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * repeated CardGroup cards_group_list = 10;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.CardGroup>}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.getCardsGroupListList = function() {
    return /** @type{!Array.<!proto.game.CardGroup>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.CardGroup, 10));
  };
  
  
  /** @param {!Array.<!proto.game.CardGroup>} value */
  proto.game.SettleForRoundResponse.PlayerData.prototype.setCardsGroupListList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 10, value);
  };
  
  
  /**
   * @param {!proto.game.CardGroup=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.CardGroup}
   */
  proto.game.SettleForRoundResponse.PlayerData.prototype.addCardsGroupList = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.game.CardGroup, opt_index);
  };
  
  
  proto.game.SettleForRoundResponse.PlayerData.prototype.clearCardsGroupListList = function() {
    this.setCardsGroupListList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoomResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoomResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoomResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoomResponse.displayName = 'proto.game.SettleForRoomResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoomResponse.repeatedFields_ = [2];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoomResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoomResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoomResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerDataList: jspb.Message.toObjectList(msg.getPlayerDataList(),
      proto.game.SettleForRoomResponse.PlayerData.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.game.SettleForRoomResponse}
   */
  proto.game.SettleForRoomResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoomResponse;
    return proto.game.SettleForRoomResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoomResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoomResponse}
   */
  proto.game.SettleForRoomResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setFlag(value);
        break;
      case 2:
        var value = new proto.game.SettleForRoomResponse.PlayerData;
        reader.readMessage(value,proto.game.SettleForRoomResponse.PlayerData.deserializeBinaryFromReader);
        msg.addPlayerData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoomResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoomResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.SettleForRoomResponse.PlayerData.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 flag = 1;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.prototype.getFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated PlayerData player_data = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SettleForRoomResponse.PlayerData>}
   */
  proto.game.SettleForRoomResponse.prototype.getPlayerDataList = function() {
    return /** @type{!Array.<!proto.game.SettleForRoomResponse.PlayerData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SettleForRoomResponse.PlayerData, 2));
  };
  
  
  /** @param {!Array.<!proto.game.SettleForRoomResponse.PlayerData>} value */
  proto.game.SettleForRoomResponse.prototype.setPlayerDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.SettleForRoomResponse.PlayerData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SettleForRoomResponse.PlayerData}
   */
  proto.game.SettleForRoomResponse.prototype.addPlayerData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.SettleForRoomResponse.PlayerData, opt_index);
  };
  
  
  proto.game.SettleForRoomResponse.prototype.clearPlayerDataList = function() {
    this.setPlayerDataList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoomResponse.PlayerData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SettleForRoomResponse.PlayerData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoomResponse.PlayerData.displayName = 'proto.game.SettleForRoomResponse.PlayerData';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoomResponse.PlayerData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoomResponse.PlayerData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoomResponse.PlayerData.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      seat: jspb.Message.getFieldWithDefault(msg, 2, 0),
      totalScore: jspb.Message.getFieldWithDefault(msg, 3, 0),
      topScore: jspb.Message.getFieldWithDefault(msg, 4, 0),
      winDrawCnt: jspb.Message.getFieldWithDefault(msg, 5, 0),
      winDiscardCnt: jspb.Message.getFieldWithDefault(msg, 6, 0),
      paoCnt: jspb.Message.getFieldWithDefault(msg, 7, 0),
      kongConcealedCnt: jspb.Message.getFieldWithDefault(msg, 8, 0),
      kongExposedCnt: jspb.Message.getFieldWithDefault(msg, 9, 0),
      isOwner: jspb.Message.getFieldWithDefault(msg, 10, 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.game.SettleForRoomResponse.PlayerData}
   */
  proto.game.SettleForRoomResponse.PlayerData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoomResponse.PlayerData;
    return proto.game.SettleForRoomResponse.PlayerData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoomResponse.PlayerData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoomResponse.PlayerData}
   */
  proto.game.SettleForRoomResponse.PlayerData.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.setPlayerUuid(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSeat(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotalScore(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTopScore(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setWinDrawCnt(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setWinDiscardCnt(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setPaoCnt(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setKongConcealedCnt(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setKongExposedCnt(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsOwner(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoomResponse.PlayerData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomResponse.PlayerData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getSeat();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getTotalScore();
    if (f !== 0) {
      writer.writeInt32(
        3,
        f
      );
    }
    f = this.getTopScore();
    if (f !== 0) {
      writer.writeInt32(
        4,
        f
      );
    }
    f = this.getWinDrawCnt();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getWinDiscardCnt();
    if (f !== 0) {
      writer.writeUint32(
        6,
        f
      );
    }
    f = this.getPaoCnt();
    if (f !== 0) {
      writer.writeUint32(
        7,
        f
      );
    }
    f = this.getKongConcealedCnt();
    if (f !== 0) {
      writer.writeUint32(
        8,
        f
      );
    }
    f = this.getKongExposedCnt();
    if (f !== 0) {
      writer.writeUint32(
        9,
        f
      );
    }
    f = this.getIsOwner();
    if (f !== 0) {
      writer.writeUint32(
        10,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 seat = 2;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional int32 total_score = 3;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getTotalScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setTotalScore = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional int32 top_score = 4;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getTopScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setTopScore = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 win_draw_cnt = 5;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getWinDrawCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setWinDrawCnt = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional uint32 win_discard_cnt = 6;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getWinDiscardCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setWinDiscardCnt = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional uint32 pao_cnt = 7;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getPaoCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setPaoCnt = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional uint32 kong_concealed_cnt = 8;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getKongConcealedCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setKongConcealedCnt = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional uint32 kong_exposed_cnt = 9;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getKongExposedCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setKongExposedCnt = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * optional uint32 is_owner = 10;
   * @return {number}
   */
  proto.game.SettleForRoomResponse.PlayerData.prototype.getIsOwner = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomResponse.PlayerData.prototype.setIsOwner = function(value) {
    jspb.Message.setField(this, 10, value);
  };
  
  
  
  /**
   * 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.game.DrawNiaoZZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DrawNiaoZZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DrawNiaoZZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DrawNiaoZZResponse.displayName = 'proto.game.DrawNiaoZZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DrawNiaoZZResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DrawNiaoZZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DrawNiaoZZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DrawNiaoZZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DrawNiaoZZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      niaoList: jspb.Message.toObjectList(msg.getNiaoList(),
      proto.game.DrawNiaoZZResponse.Niao.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.game.DrawNiaoZZResponse}
   */
  proto.game.DrawNiaoZZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DrawNiaoZZResponse;
    return proto.game.DrawNiaoZZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DrawNiaoZZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DrawNiaoZZResponse}
   */
  proto.game.DrawNiaoZZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.DrawNiaoZZResponse.Niao;
        reader.readMessage(value,proto.game.DrawNiaoZZResponse.Niao.deserializeBinaryFromReader);
        msg.addNiao(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DrawNiaoZZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawNiaoZZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DrawNiaoZZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawNiaoZZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getNiaoList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.DrawNiaoZZResponse.Niao.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Niao niao = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.DrawNiaoZZResponse.Niao>}
   */
  proto.game.DrawNiaoZZResponse.prototype.getNiaoList = function() {
    return /** @type{!Array.<!proto.game.DrawNiaoZZResponse.Niao>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.DrawNiaoZZResponse.Niao, 1));
  };
  
  
  /** @param {!Array.<!proto.game.DrawNiaoZZResponse.Niao>} value */
  proto.game.DrawNiaoZZResponse.prototype.setNiaoList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.DrawNiaoZZResponse.Niao=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.DrawNiaoZZResponse.Niao}
   */
  proto.game.DrawNiaoZZResponse.prototype.addNiao = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.DrawNiaoZZResponse.Niao, opt_index);
  };
  
  
  proto.game.DrawNiaoZZResponse.prototype.clearNiaoList = function() {
    this.setNiaoList([]);
  };
  
  
  
  /**
   * 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.game.DrawNiaoZZResponse.Niao = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.DrawNiaoZZResponse.Niao, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DrawNiaoZZResponse.Niao.displayName = 'proto.game.DrawNiaoZZResponse.Niao';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DrawNiaoZZResponse.Niao.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DrawNiaoZZResponse.Niao} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DrawNiaoZZResponse.Niao.toObject = function(includeInstance, msg) {
    var f, obj = {
      seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      card: (f = msg.getCard()) && proto.game.Card.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.game.DrawNiaoZZResponse.Niao}
   */
  proto.game.DrawNiaoZZResponse.Niao.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DrawNiaoZZResponse.Niao;
    return proto.game.DrawNiaoZZResponse.Niao.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DrawNiaoZZResponse.Niao} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DrawNiaoZZResponse.Niao}
   */
  proto.game.DrawNiaoZZResponse.Niao.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.setSeat(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DrawNiaoZZResponse.Niao} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawNiaoZZResponse.Niao.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSeat();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getCard();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional int32 seat = 1;
   * @return {number}
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DrawNiaoZZResponse.Niao.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional Card card = 2;
   * @return {?proto.game.Card}
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.getCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.DrawNiaoZZResponse.Niao.prototype.setCard = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.game.DrawNiaoZZResponse.Niao.prototype.clearCard = function() {
    this.setCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.DrawNiaoZZResponse.Niao.prototype.hasCard = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * 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.game.SettleForRoundZZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundZZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundZZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundZZResponse.displayName = 'proto.game.SettleForRoundZZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundZZResponse.repeatedFields_ = [3,4];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundZZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundZZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundZZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundZZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      winType: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerDataList: jspb.Message.toObjectList(msg.getPlayerDataList(),
      proto.game.SettleForRoundZZResponse.PlayerData.toObject, includeInstance),
      drawNiaoList: jspb.Message.toObjectList(msg.getDrawNiaoList(),
      proto.game.Card.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.game.SettleForRoundZZResponse}
   */
  proto.game.SettleForRoundZZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundZZResponse;
    return proto.game.SettleForRoundZZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundZZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundZZResponse}
   */
  proto.game.SettleForRoundZZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setWinType(value);
        break;
      case 3:
        var value = new proto.game.SettleForRoundZZResponse.PlayerData;
        reader.readMessage(value,proto.game.SettleForRoundZZResponse.PlayerData.deserializeBinaryFromReader);
        msg.addPlayerData(value);
        break;
      case 4:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addDrawNiao(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundZZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundZZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundZZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundZZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getWinType();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.SettleForRoundZZResponse.PlayerData.serializeBinaryToWriter
      );
    }
    f = this.getDrawNiaoList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        4,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 win_type = 1;
   * @return {number}
   */
  proto.game.SettleForRoundZZResponse.prototype.getWinType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundZZResponse.prototype.setWinType = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated PlayerData player_data = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SettleForRoundZZResponse.PlayerData>}
   */
  proto.game.SettleForRoundZZResponse.prototype.getPlayerDataList = function() {
    return /** @type{!Array.<!proto.game.SettleForRoundZZResponse.PlayerData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SettleForRoundZZResponse.PlayerData, 3));
  };
  
  
  /** @param {!Array.<!proto.game.SettleForRoundZZResponse.PlayerData>} value */
  proto.game.SettleForRoundZZResponse.prototype.setPlayerDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.SettleForRoundZZResponse.PlayerData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SettleForRoundZZResponse.PlayerData}
   */
  proto.game.SettleForRoundZZResponse.prototype.addPlayerData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.SettleForRoundZZResponse.PlayerData, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.prototype.clearPlayerDataList = function() {
    this.setPlayerDataList([]);
  };
  
  
  /**
   * repeated Card draw_niao = 4;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundZZResponse.prototype.getDrawNiaoList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 4));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundZZResponse.prototype.setDrawNiaoList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 4, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundZZResponse.prototype.addDrawNiao = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.prototype.clearDrawNiaoList = function() {
    this.setDrawNiaoList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoundZZResponse.PlayerData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundZZResponse.PlayerData.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundZZResponse.PlayerData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundZZResponse.PlayerData.displayName = 'proto.game.SettleForRoundZZResponse.PlayerData';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundZZResponse.PlayerData.repeatedFields_ = [2,3,10,11];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundZZResponse.PlayerData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundZZResponse.PlayerData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      cardsGroupList: jspb.Message.toObjectList(msg.getCardsGroupList(),
      proto.game.Card.toObject, includeInstance),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      winCard: (f = msg.getWinCard()) && proto.game.Card.toObject(includeInstance, f),
      score: jspb.Message.getFieldWithDefault(msg, 6, 0),
      total: jspb.Message.getFieldWithDefault(msg, 7, 0),
      winType: jspb.Message.getFieldWithDefault(msg, 8, 0),
      winFlag: jspb.Message.getFieldWithDefault(msg, 9, ""),
      cardsGroupListList: jspb.Message.toObjectList(msg.getCardsGroupListList(),
      proto.game.CardGroup.toObject, includeInstance),
      cardsDrawNiaoList: jspb.Message.toObjectList(msg.getCardsDrawNiaoList(),
      proto.game.Card.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.game.SettleForRoundZZResponse.PlayerData}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundZZResponse.PlayerData;
    return proto.game.SettleForRoundZZResponse.PlayerData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundZZResponse.PlayerData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundZZResponse.PlayerData}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.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.setPlayerUuid(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsGroup(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 5:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.setWinCard(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotal(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setWinType(value);
        break;
      case 9:
        var value = /** @type {string} */ (reader.readString());
        msg.setWinFlag(value);
        break;
      case 10:
        var value = new proto.game.CardGroup;
        reader.readMessage(value,proto.game.CardGroup.deserializeBinaryFromReader);
        msg.addCardsGroupList(value);
        break;
      case 11:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsDrawNiao(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundZZResponse.PlayerData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundZZResponse.PlayerData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getCardsGroupList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getWinCard();
    if (f != null) {
      writer.writeMessage(
        5,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = this.getTotal();
    if (f !== 0) {
      writer.writeInt32(
        7,
        f
      );
    }
    f = this.getWinType();
    if (f !== 0) {
      writer.writeInt32(
        8,
        f
      );
    }
    f = this.getWinFlag();
    if (f.length > 0) {
      writer.writeString(
        9,
        f
      );
    }
    f = this.getCardsGroupListList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        10,
        f,
        proto.game.CardGroup.serializeBinaryToWriter
      );
    }
    f = this.getCardsDrawNiaoList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        11,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated Card cards_group = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getCardsGroupList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setCardsGroupList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.addCardsGroup = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.clearCardsGroupList = function() {
    this.setCardsGroupList([]);
  };
  
  
  /**
   * repeated Card cards_in_hand = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * optional Card win_card = 5;
   * @return {?proto.game.Card}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getWinCard = function() {
    return /** @type{?proto.game.Card} */ (
      jspb.Message.getWrapperField(this, proto.game.Card, 5));
  };
  
  
  /** @param {?proto.game.Card|undefined} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setWinCard = function(value) {
    jspb.Message.setWrapperField(this, 5, value);
  };
  
  
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.clearWinCard = function() {
    this.setWinCard(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.hasWinCard = function() {
    return jspb.Message.getField(this, 5) != null;
  };
  
  
  /**
   * optional int32 score = 6;
   * @return {number}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setScore = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional int32 total = 7;
   * @return {number}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getTotal = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setTotal = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional int32 win_type = 8;
   * @return {number}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getWinType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setWinType = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional string win_flag = 9;
   * @return {string}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getWinFlag = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setWinFlag = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * repeated CardGroup cards_group_list = 10;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.CardGroup>}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getCardsGroupListList = function() {
    return /** @type{!Array.<!proto.game.CardGroup>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.CardGroup, 10));
  };
  
  
  /** @param {!Array.<!proto.game.CardGroup>} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setCardsGroupListList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 10, value);
  };
  
  
  /**
   * @param {!proto.game.CardGroup=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.CardGroup}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.addCardsGroupList = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.game.CardGroup, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.clearCardsGroupListList = function() {
    this.setCardsGroupListList([]);
  };
  
  
  /**
   * repeated Card cards_draw_niao = 11;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.getCardsDrawNiaoList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 11));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.setCardsDrawNiaoList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 11, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.addCardsDrawNiao = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundZZResponse.PlayerData.prototype.clearCardsDrawNiaoList = function() {
    this.setCardsDrawNiaoList([]);
  };
  
  
  
  /**
   * 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.game.ReconnectDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ReconnectDDZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.ReconnectDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReconnectDDZResponse.displayName = 'proto.game.ReconnectDDZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ReconnectDDZResponse.repeatedFields_ = [12,14,17];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReconnectDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReconnectDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReconnectDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReconnectDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      roomId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      kwargs: jspb.Message.getFieldWithDefault(msg, 2, ""),
      ownerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      roomStatus: jspb.Message.getFieldWithDefault(msg, 4, 0),
      currentRound: jspb.Message.getFieldWithDefault(msg, 5, 0),
      lairdPlayerUuid: jspb.Message.getFieldWithDefault(msg, 6, ""),
      discardPlayerUuid: jspb.Message.getFieldWithDefault(msg, 7, ""),
      robPlayerUuid: jspb.Message.getFieldWithDefault(msg, 8, ""),
      baseScore: jspb.Message.getFieldWithDefault(msg, 9, 0),
      score: jspb.Message.getFieldWithDefault(msg, 10, 0),
      multiple: jspb.Message.getFieldWithDefault(msg, 11, 0),
      threeCardsList: jspb.Message.toObjectList(msg.getThreeCardsList(),
      proto.game.Card.toObject, includeInstance),
      boomCnt: jspb.Message.getFieldWithDefault(msg, 13, 0),
      playerList: jspb.Message.toObjectList(msg.getPlayerList(),
      proto.game.ReconnectDDZResponse.Player.toObject, includeInstance),
      code: jspb.Message.getFieldWithDefault(msg, 15, 0),
      prevDiscardPlayerUuid: jspb.Message.getFieldWithDefault(msg, 16, ""),
      prevDiscardCardsList: jspb.Message.toObjectList(msg.getPrevDiscardCardsList(),
      proto.game.Card.toObject, includeInstance),
      ownerInfo: jspb.Message.getFieldWithDefault(msg, 19, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.ReconnectDDZResponse}
   */
  proto.game.ReconnectDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReconnectDDZResponse;
    return proto.game.ReconnectDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReconnectDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReconnectDDZResponse}
   */
  proto.game.ReconnectDDZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setKwargs(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerUuid(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRoomStatus(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCurrentRound(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setLairdPlayerUuid(value);
        break;
      case 7:
        var value = /** @type {string} */ (reader.readString());
        msg.setDiscardPlayerUuid(value);
        break;
      case 8:
        var value = /** @type {string} */ (reader.readString());
        msg.setRobPlayerUuid(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setBaseScore(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMultiple(value);
        break;
      case 12:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addThreeCards(value);
        break;
      case 13:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setBoomCnt(value);
        break;
      case 14:
        var value = new proto.game.ReconnectDDZResponse.Player;
        reader.readMessage(value,proto.game.ReconnectDDZResponse.Player.deserializeBinaryFromReader);
        msg.addPlayer(value);
        break;
      case 15:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCode(value);
        break;
      case 16:
        var value = /** @type {string} */ (reader.readString());
        msg.setPrevDiscardPlayerUuid(value);
        break;
      case 17:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addPrevDiscardCards(value);
        break;
      case 19:
        var value = /** @type {string} */ (reader.readString());
        msg.setOwnerInfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReconnectDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReconnectDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getRoomId();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getKwargs();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getOwnerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getRoomStatus();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getCurrentRound();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getLairdPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
    f = this.getDiscardPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        7,
        f
      );
    }
    f = this.getRobPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        8,
        f
      );
    }
    f = this.getBaseScore();
    if (f !== 0) {
      writer.writeInt32(
        9,
        f
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        10,
        f
      );
    }
    f = this.getMultiple();
    if (f !== 0) {
      writer.writeInt32(
        11,
        f
      );
    }
    f = this.getThreeCardsList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        12,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getBoomCnt();
    if (f !== 0) {
      writer.writeInt32(
        13,
        f
      );
    }
    f = this.getPlayerList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        14,
        f,
        proto.game.ReconnectDDZResponse.Player.serializeBinaryToWriter
      );
    }
    f = this.getCode();
    if (f !== 0) {
      writer.writeUint32(
        15,
        f
      );
    }
    f = this.getPrevDiscardPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        16,
        f
      );
    }
    f = this.getPrevDiscardCardsList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        17,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getOwnerInfo();
    if (f.length > 0) {
      writer.writeString(
        19,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 room_id = 1;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getRoomId = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setRoomId = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string kwargs = 2;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getKwargs = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setKwargs = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string owner_uuid = 3;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getOwnerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setOwnerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 room_status = 4;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getRoomStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setRoomStatus = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 current_round = 5;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getCurrentRound = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setCurrentRound = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional string laird_player_uuid = 6;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getLairdPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setLairdPlayerUuid = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional string discard_player_uuid = 7;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getDiscardPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setDiscardPlayerUuid = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional string rob_player_uuid = 8;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getRobPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setRobPlayerUuid = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional int32 base_score = 9;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getBaseScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setBaseScore = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * optional int32 score = 10;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setScore = function(value) {
    jspb.Message.setField(this, 10, value);
  };
  
  
  /**
   * optional int32 multiple = 11;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getMultiple = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setMultiple = function(value) {
    jspb.Message.setField(this, 11, value);
  };
  
  
  /**
   * repeated Card three_cards = 12;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectDDZResponse.prototype.getThreeCardsList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 12));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectDDZResponse.prototype.setThreeCardsList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 12, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectDDZResponse.prototype.addThreeCards = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectDDZResponse.prototype.clearThreeCardsList = function() {
    this.setThreeCardsList([]);
  };
  
  
  /**
   * optional int32 boom_cnt = 13;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getBoomCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setBoomCnt = function(value) {
    jspb.Message.setField(this, 13, value);
  };
  
  
  /**
   * repeated Player player = 14;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.ReconnectDDZResponse.Player>}
   */
  proto.game.ReconnectDDZResponse.prototype.getPlayerList = function() {
    return /** @type{!Array.<!proto.game.ReconnectDDZResponse.Player>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.ReconnectDDZResponse.Player, 14));
  };
  
  
  /** @param {!Array.<!proto.game.ReconnectDDZResponse.Player>} value */
  proto.game.ReconnectDDZResponse.prototype.setPlayerList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 14, value);
  };
  
  
  /**
   * @param {!proto.game.ReconnectDDZResponse.Player=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.ReconnectDDZResponse.Player}
   */
  proto.game.ReconnectDDZResponse.prototype.addPlayer = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 14, opt_value, proto.game.ReconnectDDZResponse.Player, opt_index);
  };
  
  
  proto.game.ReconnectDDZResponse.prototype.clearPlayerList = function() {
    this.setPlayerList([]);
  };
  
  
  /**
   * optional uint32 code = 15;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.prototype.getCode = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.prototype.setCode = function(value) {
    jspb.Message.setField(this, 15, value);
  };
  
  
  /**
   * optional string prev_discard_player_uuid = 16;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getPrevDiscardPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setPrevDiscardPlayerUuid = function(value) {
    jspb.Message.setField(this, 16, value);
  };
  
  
  /**
   * repeated Card prev_discard_cards = 17;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectDDZResponse.prototype.getPrevDiscardCardsList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 17));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectDDZResponse.prototype.setPrevDiscardCardsList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 17, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectDDZResponse.prototype.addPrevDiscardCards = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectDDZResponse.prototype.clearPrevDiscardCardsList = function() {
    this.setPrevDiscardCardsList([]);
  };
  
  
  /**
   * optional string owner_info = 19;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.prototype.getOwnerInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.prototype.setOwnerInfo = function(value) {
    jspb.Message.setField(this, 19, value);
  };
  
  
  
  /**
   * 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.game.ReconnectDDZResponse.Player = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.ReconnectDDZResponse.Player.repeatedFields_, null);
  };
  goog.inherits(proto.game.ReconnectDDZResponse.Player, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.ReconnectDDZResponse.Player.displayName = 'proto.game.ReconnectDDZResponse.Player';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.ReconnectDDZResponse.Player.repeatedFields_ = [11,12];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.toObject = function(opt_includeInstance) {
    return proto.game.ReconnectDDZResponse.Player.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.ReconnectDDZResponse.Player} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.ReconnectDDZResponse.Player.toObject = function(includeInstance, msg) {
    var f, obj = {
      seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      info: jspb.Message.getFieldWithDefault(msg, 3, ""),
      status: jspb.Message.getFieldWithDefault(msg, 4, 0),
      isOnline: jspb.Message.getFieldWithDefault(msg, 5, 0),
      totalScore: jspb.Message.getFieldWithDefault(msg, 6, 0),
      robFlag: jspb.Message.getFieldWithDefault(msg, 7, 0),
      robScore: jspb.Message.getFieldWithDefault(msg, 8, 0),
      score: jspb.Message.getFieldWithDefault(msg, 9, 0),
      boomCnt: jspb.Message.getFieldWithDefault(msg, 10, 0),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      cardsDiscardList: jspb.Message.toObjectList(msg.getCardsDiscardList(),
      proto.game.Card.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.game.ReconnectDDZResponse.Player}
   */
  proto.game.ReconnectDDZResponse.Player.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.ReconnectDDZResponse.Player;
    return proto.game.ReconnectDDZResponse.Player.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.ReconnectDDZResponse.Player} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.ReconnectDDZResponse.Player}
   */
  proto.game.ReconnectDDZResponse.Player.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.setSeat(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setInfo(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setStatus(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsOnline(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotalScore(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setRobFlag(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setRobScore(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setBoomCnt(value);
        break;
      case 11:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 12:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsDiscard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.ReconnectDDZResponse.Player} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectDDZResponse.Player.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.ReconnectDDZResponse.Player.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getSeat();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getInfo();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getStatus();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
    f = this.getIsOnline();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getTotalScore();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = this.getRobFlag();
    if (f !== 0) {
      writer.writeInt32(
        7,
        f
      );
    }
    f = this.getRobScore();
    if (f !== 0) {
      writer.writeInt32(
        8,
        f
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        9,
        f
      );
    }
    f = this.getBoomCnt();
    if (f !== 0) {
      writer.writeInt32(
        10,
        f
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        11,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getCardsDiscardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        12,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional int32 seat = 1;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string info = 3;
   * @return {string}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getInfo = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setInfo = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional uint32 status = 4;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getStatus = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setStatus = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 is_online = 5;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getIsOnline = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setIsOnline = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional int32 total_score = 6;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getTotalScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setTotalScore = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional int32 rob_flag = 7;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getRobFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setRobFlag = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional int32 rob_score = 8;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getRobScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setRobScore = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional int32 score = 9;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setScore = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * optional int32 boom_cnt = 10;
   * @return {number}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getBoomCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setBoomCnt = function(value) {
    jspb.Message.setField(this, 10, value);
  };
  
  
  /**
   * repeated Card cards_in_hand = 11;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 11));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 11, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectDDZResponse.Player.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * repeated Card cards_discard = 12;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.getCardsDiscardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 12));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.ReconnectDDZResponse.Player.prototype.setCardsDiscardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 12, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.ReconnectDDZResponse.Player.prototype.addCardsDiscard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.ReconnectDDZResponse.Player.prototype.clearCardsDiscardList = function() {
    this.setCardsDiscardList([]);
  };
  
  
  
  /**
   * 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.game.DealDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DealDDZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DealDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DealDDZResponse.displayName = 'proto.game.DealDDZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DealDDZResponse.repeatedFields_ = [2,3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DealDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DealDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DealDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DealDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      firstRobUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      threeCardsList: jspb.Message.toObjectList(msg.getThreeCardsList(),
      proto.game.Card.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.game.DealDDZResponse}
   */
  proto.game.DealDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DealDDZResponse;
    return proto.game.DealDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DealDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DealDDZResponse}
   */
  proto.game.DealDDZResponse.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.setFirstRobUuid(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 3:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addThreeCards(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DealDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DealDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DealDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DealDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFirstRobUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getThreeCardsList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string first_rob_uuid = 1;
   * @return {string}
   */
  proto.game.DealDDZResponse.prototype.getFirstRobUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DealDDZResponse.prototype.setFirstRobUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated Card cards_in_hand = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.DealDDZResponse.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.DealDDZResponse.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.DealDDZResponse.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.DealDDZResponse.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * repeated Card three_cards = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.DealDDZResponse.prototype.getThreeCardsList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 3));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.DealDDZResponse.prototype.setThreeCardsList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.DealDDZResponse.prototype.addThreeCards = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.DealDDZResponse.prototype.clearThreeCardsList = function() {
    this.setThreeCardsList([]);
  };
  
  
  
  /**
   * 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.game.RobDDZRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.RobDDZRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.RobDDZRequest.displayName = 'proto.game.RobDDZRequest';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.RobDDZRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.RobDDZRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.RobDDZRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.RobDDZRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 0),
      score: 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.game.RobDDZRequest}
   */
  proto.game.RobDDZRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.RobDDZRequest;
    return proto.game.RobDDZRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.RobDDZRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.RobDDZRequest}
   */
  proto.game.RobDDZRequest.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.setFlag(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.RobDDZRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RobDDZRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.RobDDZRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RobDDZRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional int32 flag = 1;
   * @return {number}
   */
  proto.game.RobDDZRequest.prototype.getFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RobDDZRequest.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional int32 score = 2;
   * @return {number}
   */
  proto.game.RobDDZRequest.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RobDDZRequest.prototype.setScore = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  
  /**
   * 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.game.RobDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.RobDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.RobDDZResponse.displayName = 'proto.game.RobDDZResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.RobDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.RobDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.RobDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.RobDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 0),
      score: jspb.Message.getFieldWithDefault(msg, 2, 0),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
      nextRobPlayerUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
      lairdPlayerUuid: jspb.Message.getFieldWithDefault(msg, 5, ""),
      prevRobPlayerUuid: jspb.Message.getFieldWithDefault(msg, 6, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.RobDDZResponse}
   */
  proto.game.RobDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.RobDDZResponse;
    return proto.game.RobDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.RobDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.RobDDZResponse}
   */
  proto.game.RobDDZResponse.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.setFlag(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setNextRobPlayerUuid(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setLairdPlayerUuid(value);
        break;
      case 6:
        var value = /** @type {string} */ (reader.readString());
        msg.setPrevRobPlayerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.RobDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RobDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.RobDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.RobDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f !== 0) {
      writer.writeInt32(
        1,
        f
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        2,
        f
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = this.getNextRobPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
    f = this.getLairdPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        5,
        f
      );
    }
    f = this.getPrevRobPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        6,
        f
      );
    }
  };
  
  
  /**
   * optional int32 flag = 1;
   * @return {number}
   */
  proto.game.RobDDZResponse.prototype.getFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RobDDZResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional int32 score = 2;
   * @return {number}
   */
  proto.game.RobDDZResponse.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.RobDDZResponse.prototype.setScore = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional string player_uuid = 3;
   * @return {string}
   */
  proto.game.RobDDZResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RobDDZResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string next_rob_player_uuid = 4;
   * @return {string}
   */
  proto.game.RobDDZResponse.prototype.getNextRobPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RobDDZResponse.prototype.setNextRobPlayerUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional string laird_player_uuid = 5;
   * @return {string}
   */
  proto.game.RobDDZResponse.prototype.getLairdPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RobDDZResponse.prototype.setLairdPlayerUuid = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional string prev_rob_player_uuid = 6;
   * @return {string}
   */
  proto.game.RobDDZResponse.prototype.getPrevRobPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
  };
  
  
  /** @param {string} value */
  proto.game.RobDDZResponse.prototype.setPrevRobPlayerUuid = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  
  /**
   * 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.game.DiscardDDZRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DiscardDDZRequest.repeatedFields_, null);
  };
  goog.inherits(proto.game.DiscardDDZRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DiscardDDZRequest.displayName = 'proto.game.DiscardDDZRequest';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DiscardDDZRequest.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DiscardDDZRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DiscardDDZRequest.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DiscardDDZRequest} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DiscardDDZRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      cardList: jspb.Message.toObjectList(msg.getCardList(),
      proto.game.Card.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.game.DiscardDDZRequest}
   */
  proto.game.DiscardDDZRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DiscardDDZRequest;
    return proto.game.DiscardDDZRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DiscardDDZRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DiscardDDZRequest}
   */
  proto.game.DiscardDDZRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCard(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DiscardDDZRequest} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardDDZRequest.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DiscardDDZRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardDDZRequest.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * repeated Card card = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.DiscardDDZRequest.prototype.getCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.DiscardDDZRequest.prototype.setCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.DiscardDDZRequest.prototype.addCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.DiscardDDZRequest.prototype.clearCardList = function() {
    this.setCardList([]);
  };
  
  
  
  /**
   * 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.game.DiscardDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.DiscardDDZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.DiscardDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.DiscardDDZResponse.displayName = 'proto.game.DiscardDDZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.DiscardDDZResponse.repeatedFields_ = [1];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.DiscardDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.DiscardDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.DiscardDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.DiscardDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      cardList: jspb.Message.toObjectList(msg.getCardList(),
      proto.game.Card.toObject, includeInstance),
      playerUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
      cardType: jspb.Message.getFieldWithDefault(msg, 3, 0),
      nextDiscardPlayerUuid: jspb.Message.getFieldWithDefault(msg, 4, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.game.DiscardDDZResponse}
   */
  proto.game.DiscardDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.DiscardDDZResponse;
    return proto.game.DiscardDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.DiscardDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.DiscardDDZResponse}
   */
  proto.game.DiscardDDZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCard(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPlayerUuid(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setCardType(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setNextDiscardPlayerUuid(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.DiscardDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.DiscardDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.DiscardDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getCardList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = this.getCardType();
    if (f !== 0) {
      writer.writeUint32(
        3,
        f
      );
    }
    f = this.getNextDiscardPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        4,
        f
      );
    }
  };
  
  
  /**
   * repeated Card card = 1;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.DiscardDDZResponse.prototype.getCardList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 1));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.DiscardDDZResponse.prototype.setCardList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.DiscardDDZResponse.prototype.addCard = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.DiscardDDZResponse.prototype.clearCardList = function() {
    this.setCardList([]);
  };
  
  
  /**
   * optional string player_uuid = 2;
   * @return {string}
   */
  proto.game.DiscardDDZResponse.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DiscardDDZResponse.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional uint32 card_type = 3;
   * @return {number}
   */
  proto.game.DiscardDDZResponse.prototype.getCardType = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.DiscardDDZResponse.prototype.setCardType = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional string next_discard_player_uuid = 4;
   * @return {string}
   */
  proto.game.DiscardDDZResponse.prototype.getNextDiscardPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
  };
  
  
  /** @param {string} value */
  proto.game.DiscardDDZResponse.prototype.setNextDiscardPlayerUuid = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.SettleForRoundDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundDDZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundDDZResponse.displayName = 'proto.game.SettleForRoundDDZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundDDZResponse.repeatedFields_ = [3];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      baseScore: jspb.Message.getFieldWithDefault(msg, 1, 0),
      multiple: jspb.Message.getFieldWithDefault(msg, 2, 0),
      playerDataList: jspb.Message.toObjectList(msg.getPlayerDataList(),
      proto.game.SettleForRoundDDZResponse.PlayerData.toObject, includeInstance),
      isSpring: 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.game.SettleForRoundDDZResponse}
   */
  proto.game.SettleForRoundDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundDDZResponse;
    return proto.game.SettleForRoundDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundDDZResponse}
   */
  proto.game.SettleForRoundDDZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setBaseScore(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setMultiple(value);
        break;
      case 3:
        var value = new proto.game.SettleForRoundDDZResponse.PlayerData;
        reader.readMessage(value,proto.game.SettleForRoundDDZResponse.PlayerData.deserializeBinaryFromReader);
        msg.addPlayerData(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsSpring(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getBaseScore();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getMultiple();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getPlayerDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        3,
        f,
        proto.game.SettleForRoundDDZResponse.PlayerData.serializeBinaryToWriter
      );
    }
    f = this.getIsSpring();
    if (f !== 0) {
      writer.writeUint32(
        4,
        f
      );
    }
  };
  
  
  /**
   * optional uint32 base_score = 1;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.prototype.getBaseScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.prototype.setBaseScore = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 multiple = 2;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.prototype.getMultiple = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.prototype.setMultiple = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * repeated PlayerData player_data = 3;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SettleForRoundDDZResponse.PlayerData>}
   */
  proto.game.SettleForRoundDDZResponse.prototype.getPlayerDataList = function() {
    return /** @type{!Array.<!proto.game.SettleForRoundDDZResponse.PlayerData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SettleForRoundDDZResponse.PlayerData, 3));
  };
  
  
  /** @param {!Array.<!proto.game.SettleForRoundDDZResponse.PlayerData>} value */
  proto.game.SettleForRoundDDZResponse.prototype.setPlayerDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 3, value);
  };
  
  
  /**
   * @param {!proto.game.SettleForRoundDDZResponse.PlayerData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SettleForRoundDDZResponse.PlayerData}
   */
  proto.game.SettleForRoundDDZResponse.prototype.addPlayerData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.game.SettleForRoundDDZResponse.PlayerData, opt_index);
  };
  
  
  proto.game.SettleForRoundDDZResponse.prototype.clearPlayerDataList = function() {
    this.setPlayerDataList([]);
  };
  
  
  /**
   * optional uint32 is_spring = 4;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.prototype.getIsSpring = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.prototype.setIsSpring = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  
  /**
   * 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.game.SettleForRoundDDZResponse.PlayerData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoundDDZResponse.PlayerData.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoundDDZResponse.PlayerData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoundDDZResponse.PlayerData.displayName = 'proto.game.SettleForRoundDDZResponse.PlayerData';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.repeatedFields_ = [2];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoundDDZResponse.PlayerData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoundDDZResponse.PlayerData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      cardsInHandList: jspb.Message.toObjectList(msg.getCardsInHandList(),
      proto.game.Card.toObject, includeInstance),
      score: jspb.Message.getFieldWithDefault(msg, 3, 0),
      total: jspb.Message.getFieldWithDefault(msg, 4, 0),
      bombCount: jspb.Message.getFieldWithDefault(msg, 5, 0),
      isWin: jspb.Message.getFieldWithDefault(msg, 6, 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.game.SettleForRoundDDZResponse.PlayerData}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoundDDZResponse.PlayerData;
    return proto.game.SettleForRoundDDZResponse.PlayerData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoundDDZResponse.PlayerData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoundDDZResponse.PlayerData}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.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.setPlayerUuid(value);
        break;
      case 2:
        var value = new proto.game.Card;
        reader.readMessage(value,proto.game.Card.deserializeBinaryFromReader);
        msg.addCardsInHand(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setScore(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotal(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setBombCount(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setIsWin(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoundDDZResponse.PlayerData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getCardsInHandList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.Card.serializeBinaryToWriter
      );
    }
    f = this.getScore();
    if (f !== 0) {
      writer.writeInt32(
        3,
        f
      );
    }
    f = this.getTotal();
    if (f !== 0) {
      writer.writeInt32(
        4,
        f
      );
    }
    f = this.getBombCount();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getIsWin();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated Card cards_in_hand = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.Card>}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getCardsInHandList = function() {
    return /** @type{!Array.<!proto.game.Card>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.Card, 2));
  };
  
  
  /** @param {!Array.<!proto.game.Card>} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setCardsInHandList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.Card=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.Card}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.addCardsInHand = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.Card, opt_index);
  };
  
  
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.clearCardsInHandList = function() {
    this.setCardsInHandList([]);
  };
  
  
  /**
   * optional int32 score = 3;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setScore = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional int32 total = 4;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getTotal = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setTotal = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 bomb_count = 5;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getBombCount = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setBombCount = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional int32 is_win = 6;
   * @return {number}
   */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.getIsWin = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoundDDZResponse.PlayerData.prototype.setIsWin = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  
  /**
   * 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.game.SettleForRoomDDZResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.game.SettleForRoomDDZResponse.repeatedFields_, null);
  };
  goog.inherits(proto.game.SettleForRoomDDZResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoomDDZResponse.displayName = 'proto.game.SettleForRoomDDZResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.game.SettleForRoomDDZResponse.repeatedFields_ = [2];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoomDDZResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoomDDZResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoomDDZResponse} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoomDDZResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      flag: jspb.Message.getFieldWithDefault(msg, 1, 0),
      playerDataList: jspb.Message.toObjectList(msg.getPlayerDataList(),
      proto.game.SettleForRoomDDZResponse.PlayerData.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.game.SettleForRoomDDZResponse}
   */
  proto.game.SettleForRoomDDZResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoomDDZResponse;
    return proto.game.SettleForRoomDDZResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoomDDZResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoomDDZResponse}
   */
  proto.game.SettleForRoomDDZResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setFlag(value);
        break;
      case 2:
        var value = new proto.game.SettleForRoomDDZResponse.PlayerData;
        reader.readMessage(value,proto.game.SettleForRoomDDZResponse.PlayerData.deserializeBinaryFromReader);
        msg.addPlayerData(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoomDDZResponse} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomDDZResponse.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoomDDZResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomDDZResponse.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getFlag();
    if (f !== 0) {
      writer.writeUint32(
        1,
        f
      );
    }
    f = this.getPlayerDataList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.game.SettleForRoomDDZResponse.PlayerData.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional uint32 flag = 1;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.prototype.getFlag = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.prototype.setFlag = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * repeated PlayerData player_data = 2;
   * If you change this array by adding, removing or replacing elements, or if you
   * replace the array itself, then you must call the setter to update it.
   * @return {!Array.<!proto.game.SettleForRoomDDZResponse.PlayerData>}
   */
  proto.game.SettleForRoomDDZResponse.prototype.getPlayerDataList = function() {
    return /** @type{!Array.<!proto.game.SettleForRoomDDZResponse.PlayerData>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.game.SettleForRoomDDZResponse.PlayerData, 2));
  };
  
  
  /** @param {!Array.<!proto.game.SettleForRoomDDZResponse.PlayerData>} value */
  proto.game.SettleForRoomDDZResponse.prototype.setPlayerDataList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.game.SettleForRoomDDZResponse.PlayerData=} opt_value
   * @param {number=} opt_index
   * @return {!proto.game.SettleForRoomDDZResponse.PlayerData}
   */
  proto.game.SettleForRoomDDZResponse.prototype.addPlayerData = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.game.SettleForRoomDDZResponse.PlayerData, opt_index);
  };
  
  
  proto.game.SettleForRoomDDZResponse.prototype.clearPlayerDataList = function() {
    this.setPlayerDataList([]);
  };
  
  
  
  /**
   * 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.game.SettleForRoomDDZResponse.PlayerData = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.game.SettleForRoomDDZResponse.PlayerData, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.game.SettleForRoomDDZResponse.PlayerData.displayName = 'proto.game.SettleForRoomDDZResponse.PlayerData';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.toObject = function(opt_includeInstance) {
    return proto.game.SettleForRoomDDZResponse.PlayerData.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game.SettleForRoomDDZResponse.PlayerData} msg The msg instance to transform.
   * @return {!Object}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.toObject = function(includeInstance, msg) {
    var f, obj = {
      playerUuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
      seat: jspb.Message.getFieldWithDefault(msg, 2, 0),
      totalScore: jspb.Message.getFieldWithDefault(msg, 3, 0),
      topScore: jspb.Message.getFieldWithDefault(msg, 4, 0),
      winTotalCnt: jspb.Message.getFieldWithDefault(msg, 5, 0),
      isOwner: jspb.Message.getFieldWithDefault(msg, 6, 0),
      rewardchip: jspb.Message.getFieldWithDefault(msg, 7, 0),
      allBoomCnt: jspb.Message.getFieldWithDefault(msg, 8, 0),
      loseTotalCnt: jspb.Message.getFieldWithDefault(msg, 9, 0),
      maxPoorScore: jspb.Message.getFieldWithDefault(msg, 10, 0),
      springCnt: jspb.Message.getFieldWithDefault(msg, 11, 0),
      endTime: jspb.Message.getFieldWithDefault(msg, 12, ""),
      dealerCnt: jspb.Message.getFieldWithDefault(msg, 13, 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.game.SettleForRoomDDZResponse.PlayerData}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.game.SettleForRoomDDZResponse.PlayerData;
    return proto.game.SettleForRoomDDZResponse.PlayerData.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.game.SettleForRoomDDZResponse.PlayerData} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.game.SettleForRoomDDZResponse.PlayerData}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.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.setPlayerUuid(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setSeat(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTotalScore(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTopScore(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setWinTotalCnt(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setIsOwner(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setRewardchip(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setAllBoomCnt(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readUint32());
        msg.setLoseTotalCnt(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMaxPoorScore(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setSpringCnt(value);
        break;
      case 12:
        var value = /** @type {string} */ (reader.readString());
        msg.setEndTime(value);
        break;
      case 13:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setDealerCnt(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Class method variant: serializes the given message to binary data
   * (in protobuf wire format), writing to the given BinaryWriter.
   * @param {!proto.game.SettleForRoomDDZResponse.PlayerData} message
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.serializeBinaryToWriter = function(message, writer) {
    message.serializeBinaryToWriter(writer);
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    this.serializeBinaryToWriter(writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format),
   * writing to the given BinaryWriter.
   * @param {!jspb.BinaryWriter} writer
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.serializeBinaryToWriter = function (writer) {
    var f = undefined;
    f = this.getPlayerUuid();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = this.getSeat();
    if (f !== 0) {
      writer.writeUint32(
        2,
        f
      );
    }
    f = this.getTotalScore();
    if (f !== 0) {
      writer.writeInt32(
        3,
        f
      );
    }
    f = this.getTopScore();
    if (f !== 0) {
      writer.writeInt32(
        4,
        f
      );
    }
    f = this.getWinTotalCnt();
    if (f !== 0) {
      writer.writeUint32(
        5,
        f
      );
    }
    f = this.getIsOwner();
    if (f !== 0) {
      writer.writeUint32(
        6,
        f
      );
    }
    f = this.getRewardchip();
    if (f !== 0) {
      writer.writeUint32(
        7,
        f
      );
    }
    f = this.getAllBoomCnt();
    if (f !== 0) {
      writer.writeUint32(
        8,
        f
      );
    }
    f = this.getLoseTotalCnt();
    if (f !== 0) {
      writer.writeUint32(
        9,
        f
      );
    }
    f = this.getMaxPoorScore();
    if (f !== 0) {
      writer.writeInt32(
        10,
        f
      );
    }
    f = this.getSpringCnt();
    if (f !== 0) {
      writer.writeInt32(
        11,
        f
      );
    }
    f = this.getEndTime();
    if (f.length > 0) {
      writer.writeString(
        12,
        f
      );
    }
    f = this.getDealerCnt();
    if (f !== 0) {
      writer.writeInt32(
        13,
        f
      );
    }
  };
  
  
  /**
   * optional string player_uuid = 1;
   * @return {string}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getPlayerUuid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setPlayerUuid = function(value) {
    jspb.Message.setField(this, 1, value);
  };
  
  
  /**
   * optional uint32 seat = 2;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getSeat = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setSeat = function(value) {
    jspb.Message.setField(this, 2, value);
  };
  
  
  /**
   * optional int32 total_score = 3;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getTotalScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setTotalScore = function(value) {
    jspb.Message.setField(this, 3, value);
  };
  
  
  /**
   * optional int32 top_score = 4;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getTopScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setTopScore = function(value) {
    jspb.Message.setField(this, 4, value);
  };
  
  
  /**
   * optional uint32 win_total_cnt = 5;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getWinTotalCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setWinTotalCnt = function(value) {
    jspb.Message.setField(this, 5, value);
  };
  
  
  /**
   * optional uint32 is_owner = 6;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getIsOwner = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setIsOwner = function(value) {
    jspb.Message.setField(this, 6, value);
  };
  
  
  /**
   * optional uint32 rewardchip = 7;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getRewardchip = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setRewardchip = function(value) {
    jspb.Message.setField(this, 7, value);
  };
  
  
  /**
   * optional uint32 all_boom_cnt = 8;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getAllBoomCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setAllBoomCnt = function(value) {
    jspb.Message.setField(this, 8, value);
  };
  
  
  /**
   * optional uint32 lose_total_cnt = 9;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getLoseTotalCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setLoseTotalCnt = function(value) {
    jspb.Message.setField(this, 9, value);
  };
  
  
  /**
   * optional int32 max_poor_score = 10;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getMaxPoorScore = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setMaxPoorScore = function(value) {
    jspb.Message.setField(this, 10, value);
  };
  
  
  /**
   * optional int32 spring_cnt = 11;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getSpringCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setSpringCnt = function(value) {
    jspb.Message.setField(this, 11, value);
  };
  
  
  /**
   * optional string end_time = 12;
   * @return {string}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getEndTime = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
  };
  
  
  /** @param {string} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setEndTime = function(value) {
    jspb.Message.setField(this, 12, value);
  };
  
  
  /**
   * optional int32 dealer_cnt = 13;
   * @return {number}
   */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.getDealerCnt = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
  };
  
  
  /** @param {number} value */
  proto.game.SettleForRoomDDZResponse.PlayerData.prototype.setDealerCnt = function(value) {
    jspb.Message.setField(this, 13, value);
  };
  
  
  