// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: account_types.proto

#ifndef PROTOBUF_account_5ftypes_2eproto__INCLUDED
#define PROTOBUF_account_5ftypes_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "entity_types.pb.h"
#include "rpc_types.pb.h"
#include "Define.h"
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {
namespace account {
namespace v1 {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_account_5ftypes_2eproto();
void protobuf_AssignDesc_account_5ftypes_2eproto();
void protobuf_ShutdownFile_account_5ftypes_2eproto();

class AccountId;
class AccountLicense;
class AccountCredential;
class AccountBlob;
class AccountBlobList;
class GameAccountHandle;
class GameAccountLink;
class GameAccountBlob;
class GameAccountBlobList;
class AccountReference;
class Identity;
class AccountInfo;
class ProgramTag;
class RegionTag;
class AccountFieldTags;
class GameAccountFieldTags;
class AccountFieldOptions;
class GameAccountFieldOptions;
class SubscriberReference;
class AccountLevelInfo;
class PrivacyInfo;
class ParentalControlInfo;
class GameLevelInfo;
class GameTimeInfo;
class GameTimeRemainingInfo;
class GameStatus;
class RAFInfo;
class GameSessionInfo;
class GameSessionUpdateInfo;
class GameSessionLocation;
class CAIS;
class GameAccountList;
class AccountState;
class AccountStateTagged;
class GameAccountState;
class GameAccountStateTagged;
class AuthorizedData;
class BenefactorAddress;
class ExternalBenefactorLookup;
class AuthBenefactor;
class ApplicationInfo;
class DeductRecord;
class IgrId;

enum PrivacyInfo_GameInfoPrivacy {
  PrivacyInfo_GameInfoPrivacy_PRIVACY_ME = 0,
  PrivacyInfo_GameInfoPrivacy_PRIVACY_FRIENDS = 1,
  PrivacyInfo_GameInfoPrivacy_PRIVACY_EVERYONE = 2
};
bool PrivacyInfo_GameInfoPrivacy_IsValid(int value);
const PrivacyInfo_GameInfoPrivacy PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_MIN = PrivacyInfo_GameInfoPrivacy_PRIVACY_ME;
const PrivacyInfo_GameInfoPrivacy PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_MAX = PrivacyInfo_GameInfoPrivacy_PRIVACY_EVERYONE;
const int PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_ARRAYSIZE = PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_MAX + 1;

const ::google::protobuf::EnumDescriptor* PrivacyInfo_GameInfoPrivacy_descriptor();
inline const ::std::string& PrivacyInfo_GameInfoPrivacy_Name(PrivacyInfo_GameInfoPrivacy value) {
  return ::google::protobuf::internal::NameOfEnum(
    PrivacyInfo_GameInfoPrivacy_descriptor(), value);
}
inline bool PrivacyInfo_GameInfoPrivacy_Parse(
    const ::std::string& name, PrivacyInfo_GameInfoPrivacy* value) {
  return ::google::protobuf::internal::ParseNamedEnum<PrivacyInfo_GameInfoPrivacy>(
    PrivacyInfo_GameInfoPrivacy_descriptor(), name, value);
}
enum IdentityVerificationStatus {
  IDENT_NO_DATA = 0,
  IDENT_PENDING = 1,
  IDENT_FAILED = 4,
  IDENT_SUCCESS = 5,
  IDENT_SUCC_MNL = 6,
  IDENT_UNKNOWN = 7
};
bool IdentityVerificationStatus_IsValid(int value);
const IdentityVerificationStatus IdentityVerificationStatus_MIN = IDENT_NO_DATA;
const IdentityVerificationStatus IdentityVerificationStatus_MAX = IDENT_UNKNOWN;
const int IdentityVerificationStatus_ARRAYSIZE = IdentityVerificationStatus_MAX + 1;

const ::google::protobuf::EnumDescriptor* IdentityVerificationStatus_descriptor();
inline const ::std::string& IdentityVerificationStatus_Name(IdentityVerificationStatus value) {
  return ::google::protobuf::internal::NameOfEnum(
    IdentityVerificationStatus_descriptor(), value);
}
inline bool IdentityVerificationStatus_Parse(
    const ::std::string& name, IdentityVerificationStatus* value) {
  return ::google::protobuf::internal::ParseNamedEnum<IdentityVerificationStatus>(
    IdentityVerificationStatus_descriptor(), name, value);
}
// ===================================================================

class AccountId : public ::google::protobuf::Message {
 public:
  AccountId();
  virtual ~AccountId();

  AccountId(const AccountId& from);

  inline AccountId& operator=(const AccountId& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountId& default_instance();

  void Swap(AccountId* other);

  // implements Message ----------------------------------------------

  AccountId* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountId& from);
  void MergeFrom(const AccountId& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required fixed32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountId)
 private:
  inline void set_has_id();
  inline void clear_has_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 id_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountId* default_instance_;
};
// -------------------------------------------------------------------

class AccountLicense : public ::google::protobuf::Message {
 public:
  AccountLicense();
  virtual ~AccountLicense();

  AccountLicense(const AccountLicense& from);

  inline AccountLicense& operator=(const AccountLicense& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountLicense& default_instance();

  void Swap(AccountLicense* other);

  // implements Message ----------------------------------------------

  AccountLicense* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountLicense& from);
  void MergeFrom(const AccountLicense& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // optional uint64 expires = 2;
  inline bool has_expires() const;
  inline void clear_expires();
  static const int kExpiresFieldNumber = 2;
  inline ::google::protobuf::uint64 expires() const;
  inline void set_expires(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountLicense)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_expires();
  inline void clear_has_expires();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 expires_;
  ::google::protobuf::uint32 id_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountLicense* default_instance_;
};
// -------------------------------------------------------------------

class AccountCredential : public ::google::protobuf::Message {
 public:
  AccountCredential();
  virtual ~AccountCredential();

  AccountCredential(const AccountCredential& from);

  inline AccountCredential& operator=(const AccountCredential& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountCredential& default_instance();

  void Swap(AccountCredential* other);

  // implements Message ----------------------------------------------

  AccountCredential* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountCredential& from);
  void MergeFrom(const AccountCredential& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // optional bytes data = 2;
  inline bool has_data() const;
  inline void clear_data();
  static const int kDataFieldNumber = 2;
  inline const ::std::string& data() const;
  inline void set_data(const ::std::string& value);
  inline void set_data(const char* value);
  inline void set_data(const void* value, size_t size);
  inline ::std::string* mutable_data();
  inline ::std::string* release_data();
  inline void set_allocated_data(::std::string* data);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountCredential)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_data();
  inline void clear_has_data();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* data_;
  ::google::protobuf::uint32 id_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountCredential* default_instance_;
};
// -------------------------------------------------------------------

class AccountBlob : public ::google::protobuf::Message {
 public:
  AccountBlob();
  virtual ~AccountBlob();

  AccountBlob(const AccountBlob& from);

  inline AccountBlob& operator=(const AccountBlob& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountBlob& default_instance();

  void Swap(AccountBlob* other);

  // implements Message ----------------------------------------------

  AccountBlob* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountBlob& from);
  void MergeFrom(const AccountBlob& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required fixed32 id = 2;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 2;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // required uint32 region = 3;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 3;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // repeated string email = 4;
  inline int email_size() const;
  inline void clear_email();
  static const int kEmailFieldNumber = 4;
  inline const ::std::string& email(int index) const;
  inline ::std::string* mutable_email(int index);
  inline void set_email(int index, const ::std::string& value);
  inline void set_email(int index, const char* value);
  inline void set_email(int index, const char* value, size_t size);
  inline ::std::string* add_email();
  inline void add_email(const ::std::string& value);
  inline void add_email(const char* value);
  inline void add_email(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& email() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_email();

  // required uint64 flags = 5;
  inline bool has_flags() const;
  inline void clear_flags();
  static const int kFlagsFieldNumber = 5;
  inline ::google::protobuf::uint64 flags() const;
  inline void set_flags(::google::protobuf::uint64 value);

  // optional uint64 secure_release = 6;
  inline bool has_secure_release() const;
  inline void clear_secure_release();
  static const int kSecureReleaseFieldNumber = 6;
  inline ::google::protobuf::uint64 secure_release() const;
  inline void set_secure_release(::google::protobuf::uint64 value);

  // optional uint64 whitelist_start = 7;
  inline bool has_whitelist_start() const;
  inline void clear_whitelist_start();
  static const int kWhitelistStartFieldNumber = 7;
  inline ::google::protobuf::uint64 whitelist_start() const;
  inline void set_whitelist_start(::google::protobuf::uint64 value);

  // optional uint64 whitelist_end = 8;
  inline bool has_whitelist_end() const;
  inline void clear_whitelist_end();
  static const int kWhitelistEndFieldNumber = 8;
  inline ::google::protobuf::uint64 whitelist_end() const;
  inline void set_whitelist_end(::google::protobuf::uint64 value);

  // required string full_name = 10;
  inline bool has_full_name() const;
  inline void clear_full_name();
  static const int kFullNameFieldNumber = 10;
  inline const ::std::string& full_name() const;
  inline void set_full_name(const ::std::string& value);
  inline void set_full_name(const char* value);
  inline void set_full_name(const char* value, size_t size);
  inline ::std::string* mutable_full_name();
  inline ::std::string* release_full_name();
  inline void set_allocated_full_name(::std::string* full_name);

  // repeated .bgs.protocol.account.v1.AccountLicense licenses = 20;
  inline int licenses_size() const;
  inline void clear_licenses();
  static const int kLicensesFieldNumber = 20;
  inline const ::bgs::protocol::account::v1::AccountLicense& licenses(int index) const;
  inline ::bgs::protocol::account::v1::AccountLicense* mutable_licenses(int index);
  inline ::bgs::protocol::account::v1::AccountLicense* add_licenses();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
      licenses() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
      mutable_licenses();

  // repeated .bgs.protocol.account.v1.AccountCredential credentials = 21;
  inline int credentials_size() const;
  inline void clear_credentials();
  static const int kCredentialsFieldNumber = 21;
  inline const ::bgs::protocol::account::v1::AccountCredential& credentials(int index) const;
  inline ::bgs::protocol::account::v1::AccountCredential* mutable_credentials(int index);
  inline ::bgs::protocol::account::v1::AccountCredential* add_credentials();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
      credentials() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
      mutable_credentials();

  // repeated .bgs.protocol.account.v1.GameAccountLink account_links = 22;
  inline int account_links_size() const;
  inline void clear_account_links();
  static const int kAccountLinksFieldNumber = 22;
  inline const ::bgs::protocol::account::v1::GameAccountLink& account_links(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountLink* mutable_account_links(int index);
  inline ::bgs::protocol::account::v1::GameAccountLink* add_account_links();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >&
      account_links() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >*
      mutable_account_links();

  // optional string battle_tag = 23;
  inline bool has_battle_tag() const;
  inline void clear_battle_tag();
  static const int kBattleTagFieldNumber = 23;
  inline const ::std::string& battle_tag() const;
  inline void set_battle_tag(const ::std::string& value);
  inline void set_battle_tag(const char* value);
  inline void set_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_battle_tag();
  inline ::std::string* release_battle_tag();
  inline void set_allocated_battle_tag(::std::string* battle_tag);

  // optional fixed32 default_currency = 25;
  inline bool has_default_currency() const;
  inline void clear_default_currency();
  static const int kDefaultCurrencyFieldNumber = 25;
  inline ::google::protobuf::uint32 default_currency() const;
  inline void set_default_currency(::google::protobuf::uint32 value);

  // optional uint32 legal_region = 26;
  inline bool has_legal_region() const;
  inline void clear_legal_region();
  static const int kLegalRegionFieldNumber = 26;
  inline ::google::protobuf::uint32 legal_region() const;
  inline void set_legal_region(::google::protobuf::uint32 value);

  // optional fixed32 legal_locale = 27;
  inline bool has_legal_locale() const;
  inline void clear_legal_locale();
  static const int kLegalLocaleFieldNumber = 27;
  inline ::google::protobuf::uint32 legal_locale() const;
  inline void set_legal_locale(::google::protobuf::uint32 value);

  // required uint64 cache_expiration = 30;
  inline bool has_cache_expiration() const;
  inline void clear_cache_expiration();
  static const int kCacheExpirationFieldNumber = 30;
  inline ::google::protobuf::uint64 cache_expiration() const;
  inline void set_cache_expiration(::google::protobuf::uint64 value);

  // optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 31;
  inline bool has_parental_control_info() const;
  inline void clear_parental_control_info();
  static const int kParentalControlInfoFieldNumber = 31;
  inline const ::bgs::protocol::account::v1::ParentalControlInfo& parental_control_info() const;
  inline ::bgs::protocol::account::v1::ParentalControlInfo* mutable_parental_control_info();
  inline ::bgs::protocol::account::v1::ParentalControlInfo* release_parental_control_info();
  inline void set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info);

  // optional string country = 32;
  inline bool has_country() const;
  inline void clear_country();
  static const int kCountryFieldNumber = 32;
  inline const ::std::string& country() const;
  inline void set_country(const ::std::string& value);
  inline void set_country(const char* value);
  inline void set_country(const char* value, size_t size);
  inline ::std::string* mutable_country();
  inline ::std::string* release_country();
  inline void set_allocated_country(::std::string* country);

  // optional uint32 preferred_region = 33;
  inline bool has_preferred_region() const;
  inline void clear_preferred_region();
  static const int kPreferredRegionFieldNumber = 33;
  inline ::google::protobuf::uint32 preferred_region() const;
  inline void set_preferred_region(::google::protobuf::uint32 value);

  // optional .bgs.protocol.account.v1.IdentityVerificationStatus identity_check_status = 34;
  inline bool has_identity_check_status() const;
  inline void clear_identity_check_status();
  static const int kIdentityCheckStatusFieldNumber = 34;
  inline ::bgs::protocol::account::v1::IdentityVerificationStatus identity_check_status() const;
  inline void set_identity_check_status(::bgs::protocol::account::v1::IdentityVerificationStatus value);

  // optional string cais_id = 35;
  inline bool has_cais_id() const;
  inline void clear_cais_id();
  static const int kCaisIdFieldNumber = 35;
  inline const ::std::string& cais_id() const;
  inline void set_cais_id(const ::std::string& value);
  inline void set_cais_id(const char* value);
  inline void set_cais_id(const char* value, size_t size);
  inline ::std::string* mutable_cais_id();
  inline ::std::string* release_cais_id();
  inline void set_allocated_cais_id(::std::string* cais_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountBlob)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_secure_release();
  inline void clear_has_secure_release();
  inline void set_has_whitelist_start();
  inline void clear_has_whitelist_start();
  inline void set_has_whitelist_end();
  inline void clear_has_whitelist_end();
  inline void set_has_full_name();
  inline void clear_has_full_name();
  inline void set_has_battle_tag();
  inline void clear_has_battle_tag();
  inline void set_has_default_currency();
  inline void clear_has_default_currency();
  inline void set_has_legal_region();
  inline void clear_has_legal_region();
  inline void set_has_legal_locale();
  inline void clear_has_legal_locale();
  inline void set_has_cache_expiration();
  inline void clear_has_cache_expiration();
  inline void set_has_parental_control_info();
  inline void clear_has_parental_control_info();
  inline void set_has_country();
  inline void clear_has_country();
  inline void set_has_preferred_region();
  inline void clear_has_preferred_region();
  inline void set_has_identity_check_status();
  inline void clear_has_identity_check_status();
  inline void set_has_cais_id();
  inline void clear_has_cais_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 id_;
  ::google::protobuf::uint32 region_;
  ::google::protobuf::RepeatedPtrField< ::std::string> email_;
  ::google::protobuf::uint64 flags_;
  ::google::protobuf::uint64 secure_release_;
  ::google::protobuf::uint64 whitelist_start_;
  ::google::protobuf::uint64 whitelist_end_;
  ::std::string* full_name_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense > licenses_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential > credentials_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink > account_links_;
  ::std::string* battle_tag_;
  ::google::protobuf::uint32 default_currency_;
  ::google::protobuf::uint32 legal_region_;
  ::google::protobuf::uint64 cache_expiration_;
  ::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info_;
  ::google::protobuf::uint32 legal_locale_;
  ::google::protobuf::uint32 preferred_region_;
  ::std::string* country_;
  ::std::string* cais_id_;
  int identity_check_status_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountBlob* default_instance_;
};
// -------------------------------------------------------------------

class AccountBlobList : public ::google::protobuf::Message {
 public:
  AccountBlobList();
  virtual ~AccountBlobList();

  AccountBlobList(const AccountBlobList& from);

  inline AccountBlobList& operator=(const AccountBlobList& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountBlobList& default_instance();

  void Swap(AccountBlobList* other);

  // implements Message ----------------------------------------------

  AccountBlobList* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountBlobList& from);
  void MergeFrom(const AccountBlobList& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .bgs.protocol.account.v1.AccountBlob blob = 1;
  inline int blob_size() const;
  inline void clear_blob();
  static const int kBlobFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountBlob& blob(int index) const;
  inline ::bgs::protocol::account::v1::AccountBlob* mutable_blob(int index);
  inline ::bgs::protocol::account::v1::AccountBlob* add_blob();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountBlob >&
      blob() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountBlob >*
      mutable_blob();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountBlobList)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountBlob > blob_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountBlobList* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountHandle : public ::google::protobuf::Message {
 public:
  GameAccountHandle();
  virtual ~GameAccountHandle();

  GameAccountHandle(const GameAccountHandle& from);

  inline GameAccountHandle& operator=(const GameAccountHandle& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountHandle& default_instance();

  void Swap(GameAccountHandle* other);

  // implements Message ----------------------------------------------

  GameAccountHandle* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountHandle& from);
  void MergeFrom(const GameAccountHandle& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required fixed32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // required fixed32 program = 2;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 2;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // required uint32 region = 3;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 3;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountHandle)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 id_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountHandle* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountLink : public ::google::protobuf::Message {
 public:
  GameAccountLink();
  virtual ~GameAccountLink();

  GameAccountLink(const GameAccountLink& from);

  inline GameAccountLink& operator=(const GameAccountLink& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountLink& default_instance();

  void Swap(GameAccountLink* other);

  // implements Message ----------------------------------------------

  GameAccountLink* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountLink& from);
  void MergeFrom(const GameAccountLink& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // required string name = 2;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountLink)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_name();
  inline void clear_has_name();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::std::string* name_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountLink* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountBlob : public ::google::protobuf::Message {
 public:
  GameAccountBlob();
  virtual ~GameAccountBlob();

  GameAccountBlob(const GameAccountBlob& from);

  inline GameAccountBlob& operator=(const GameAccountBlob& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountBlob& default_instance();

  void Swap(GameAccountBlob* other);

  // implements Message ----------------------------------------------

  GameAccountBlob* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountBlob& from);
  void MergeFrom(const GameAccountBlob& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional string name = 2 [default = ""];
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional uint32 realm_permissions = 3 [default = 0];
  inline bool has_realm_permissions() const;
  inline void clear_realm_permissions();
  static const int kRealmPermissionsFieldNumber = 3;
  inline ::google::protobuf::uint32 realm_permissions() const;
  inline void set_realm_permissions(::google::protobuf::uint32 value);

  // required uint32 status = 4;
  inline bool has_status() const;
  inline void clear_status();
  static const int kStatusFieldNumber = 4;
  inline ::google::protobuf::uint32 status() const;
  inline void set_status(::google::protobuf::uint32 value);

  // optional uint64 flags = 5 [default = 0];
  inline bool has_flags() const;
  inline void clear_flags();
  static const int kFlagsFieldNumber = 5;
  inline ::google::protobuf::uint64 flags() const;
  inline void set_flags(::google::protobuf::uint64 value);

  // optional uint32 billing_flags = 6 [default = 0];
  inline bool has_billing_flags() const;
  inline void clear_billing_flags();
  static const int kBillingFlagsFieldNumber = 6;
  inline ::google::protobuf::uint32 billing_flags() const;
  inline void set_billing_flags(::google::protobuf::uint32 value);

  // required uint64 cache_expiration = 7;
  inline bool has_cache_expiration() const;
  inline void clear_cache_expiration();
  static const int kCacheExpirationFieldNumber = 7;
  inline ::google::protobuf::uint64 cache_expiration() const;
  inline void set_cache_expiration(::google::protobuf::uint64 value);

  // optional uint64 subscription_expiration = 10;
  inline bool has_subscription_expiration() const;
  inline void clear_subscription_expiration();
  static const int kSubscriptionExpirationFieldNumber = 10;
  inline ::google::protobuf::uint64 subscription_expiration() const;
  inline void set_subscription_expiration(::google::protobuf::uint64 value);

  // optional uint32 units_remaining = 11;
  inline bool has_units_remaining() const;
  inline void clear_units_remaining();
  static const int kUnitsRemainingFieldNumber = 11;
  inline ::google::protobuf::uint32 units_remaining() const;
  inline void set_units_remaining(::google::protobuf::uint32 value);

  // optional uint64 status_expiration = 12;
  inline bool has_status_expiration() const;
  inline void clear_status_expiration();
  static const int kStatusExpirationFieldNumber = 12;
  inline ::google::protobuf::uint64 status_expiration() const;
  inline void set_status_expiration(::google::protobuf::uint64 value);

  // optional uint32 box_level = 13;
  inline bool has_box_level() const;
  inline void clear_box_level();
  static const int kBoxLevelFieldNumber = 13;
  inline ::google::protobuf::uint32 box_level() const;
  inline void set_box_level(::google::protobuf::uint32 value);

  // optional uint64 box_level_expiration = 14;
  inline bool has_box_level_expiration() const;
  inline void clear_box_level_expiration();
  static const int kBoxLevelExpirationFieldNumber = 14;
  inline ::google::protobuf::uint64 box_level_expiration() const;
  inline void set_box_level_expiration(::google::protobuf::uint64 value);

  // repeated .bgs.protocol.account.v1.AccountLicense licenses = 20;
  inline int licenses_size() const;
  inline void clear_licenses();
  static const int kLicensesFieldNumber = 20;
  inline const ::bgs::protocol::account::v1::AccountLicense& licenses(int index) const;
  inline ::bgs::protocol::account::v1::AccountLicense* mutable_licenses(int index);
  inline ::bgs::protocol::account::v1::AccountLicense* add_licenses();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
      licenses() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
      mutable_licenses();

  // optional fixed32 raf_account = 21;
  inline bool has_raf_account() const;
  inline void clear_raf_account();
  static const int kRafAccountFieldNumber = 21;
  inline ::google::protobuf::uint32 raf_account() const;
  inline void set_raf_account(::google::protobuf::uint32 value);

  // optional bytes raf_info = 22;
  inline bool has_raf_info() const;
  inline void clear_raf_info();
  static const int kRafInfoFieldNumber = 22;
  inline const ::std::string& raf_info() const;
  inline void set_raf_info(const ::std::string& value);
  inline void set_raf_info(const char* value);
  inline void set_raf_info(const void* value, size_t size);
  inline ::std::string* mutable_raf_info();
  inline ::std::string* release_raf_info();
  inline void set_allocated_raf_info(::std::string* raf_info);

  // optional uint64 raf_expiration = 23;
  inline bool has_raf_expiration() const;
  inline void clear_raf_expiration();
  static const int kRafExpirationFieldNumber = 23;
  inline ::google::protobuf::uint64 raf_expiration() const;
  inline void set_raf_expiration(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountBlob)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_realm_permissions();
  inline void clear_has_realm_permissions();
  inline void set_has_status();
  inline void clear_has_status();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_billing_flags();
  inline void clear_has_billing_flags();
  inline void set_has_cache_expiration();
  inline void clear_has_cache_expiration();
  inline void set_has_subscription_expiration();
  inline void clear_has_subscription_expiration();
  inline void set_has_units_remaining();
  inline void clear_has_units_remaining();
  inline void set_has_status_expiration();
  inline void clear_has_status_expiration();
  inline void set_has_box_level();
  inline void clear_has_box_level();
  inline void set_has_box_level_expiration();
  inline void clear_has_box_level_expiration();
  inline void set_has_raf_account();
  inline void clear_has_raf_account();
  inline void set_has_raf_info();
  inline void clear_has_raf_info();
  inline void set_has_raf_expiration();
  inline void clear_has_raf_expiration();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::std::string* name_;
  ::google::protobuf::uint32 realm_permissions_;
  ::google::protobuf::uint32 status_;
  ::google::protobuf::uint64 flags_;
  ::google::protobuf::uint64 cache_expiration_;
  ::google::protobuf::uint32 billing_flags_;
  ::google::protobuf::uint32 units_remaining_;
  ::google::protobuf::uint64 subscription_expiration_;
  ::google::protobuf::uint64 status_expiration_;
  ::google::protobuf::uint64 box_level_expiration_;
  ::google::protobuf::uint32 box_level_;
  ::google::protobuf::uint32 raf_account_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense > licenses_;
  ::std::string* raf_info_;
  ::google::protobuf::uint64 raf_expiration_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountBlob* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountBlobList : public ::google::protobuf::Message {
 public:
  GameAccountBlobList();
  virtual ~GameAccountBlobList();

  GameAccountBlobList(const GameAccountBlobList& from);

  inline GameAccountBlobList& operator=(const GameAccountBlobList& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountBlobList& default_instance();

  void Swap(GameAccountBlobList* other);

  // implements Message ----------------------------------------------

  GameAccountBlobList* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountBlobList& from);
  void MergeFrom(const GameAccountBlobList& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .bgs.protocol.account.v1.GameAccountBlob blob = 1;
  inline int blob_size() const;
  inline void clear_blob();
  static const int kBlobFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountBlob& blob(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountBlob* mutable_blob(int index);
  inline ::bgs::protocol::account::v1::GameAccountBlob* add_blob();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountBlob >&
      blob() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountBlob >*
      mutable_blob();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountBlobList)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountBlob > blob_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountBlobList* default_instance_;
};
// -------------------------------------------------------------------

class AccountReference : public ::google::protobuf::Message {
 public:
  AccountReference();
  virtual ~AccountReference();

  AccountReference(const AccountReference& from);

  inline AccountReference& operator=(const AccountReference& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountReference& default_instance();

  void Swap(AccountReference* other);

  // implements Message ----------------------------------------------

  AccountReference* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountReference& from);
  void MergeFrom(const AccountReference& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline ::google::protobuf::uint32 id() const;
  inline void set_id(::google::protobuf::uint32 value);

  // optional string email = 2;
  inline bool has_email() const;
  inline void clear_email();
  static const int kEmailFieldNumber = 2;
  inline const ::std::string& email() const;
  inline void set_email(const ::std::string& value);
  inline void set_email(const char* value);
  inline void set_email(const char* value, size_t size);
  inline ::std::string* mutable_email();
  inline ::std::string* release_email();
  inline void set_allocated_email(::std::string* email);

  // optional .bgs.protocol.account.v1.GameAccountHandle handle = 3;
  inline bool has_handle() const;
  inline void clear_handle();
  static const int kHandleFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& handle() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_handle();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_handle();
  inline void set_allocated_handle(::bgs::protocol::account::v1::GameAccountHandle* handle);

  // optional string battle_tag = 4;
  inline bool has_battle_tag() const;
  inline void clear_battle_tag();
  static const int kBattleTagFieldNumber = 4;
  inline const ::std::string& battle_tag() const;
  inline void set_battle_tag(const ::std::string& value);
  inline void set_battle_tag(const char* value);
  inline void set_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_battle_tag();
  inline ::std::string* release_battle_tag();
  inline void set_allocated_battle_tag(::std::string* battle_tag);

  // optional uint32 region = 10 [default = 0];
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 10;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountReference)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_email();
  inline void clear_has_email();
  inline void set_has_handle();
  inline void clear_has_handle();
  inline void set_has_battle_tag();
  inline void clear_has_battle_tag();
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* email_;
  ::bgs::protocol::account::v1::GameAccountHandle* handle_;
  ::google::protobuf::uint32 id_;
  ::google::protobuf::uint32 region_;
  ::std::string* battle_tag_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountReference* default_instance_;
};
// -------------------------------------------------------------------

class Identity : public ::google::protobuf::Message {
 public:
  Identity();
  virtual ~Identity();

  Identity(const Identity& from);

  inline Identity& operator=(const Identity& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Identity& default_instance();

  void Swap(Identity* other);

  // implements Message ----------------------------------------------

  Identity* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Identity& from);
  void MergeFrom(const Identity& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.AccountId account = 1;
  inline bool has_account() const;
  inline void clear_account();
  static const int kAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& account() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_account();
  inline ::bgs::protocol::account::v1::AccountId* release_account();
  inline void set_allocated_account(::bgs::protocol::account::v1::AccountId* account);

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 2;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional .bgs.protocol.ProcessId process = 3;
  inline bool has_process() const;
  inline void clear_process();
  static const int kProcessFieldNumber = 3;
  inline const ::bgs::protocol::ProcessId& process() const;
  inline ::bgs::protocol::ProcessId* mutable_process();
  inline ::bgs::protocol::ProcessId* release_process();
  inline void set_allocated_process(::bgs::protocol::ProcessId* process);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.Identity)
 private:
  inline void set_has_account();
  inline void clear_has_account();
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_process();
  inline void clear_has_process();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* account_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::bgs::protocol::ProcessId* process_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Identity* default_instance_;
};
// -------------------------------------------------------------------

class AccountInfo : public ::google::protobuf::Message {
 public:
  AccountInfo();
  virtual ~AccountInfo();

  AccountInfo(const AccountInfo& from);

  inline AccountInfo& operator=(const AccountInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountInfo& default_instance();

  void Swap(AccountInfo* other);

  // implements Message ----------------------------------------------

  AccountInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountInfo& from);
  void MergeFrom(const AccountInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool account_paid = 1 [default = false];
  inline bool has_account_paid() const;
  inline void clear_account_paid();
  static const int kAccountPaidFieldNumber = 1;
  inline bool account_paid() const;
  inline void set_account_paid(bool value);

  // optional fixed32 country_id = 2 [default = 0];
  inline bool has_country_id() const;
  inline void clear_country_id();
  static const int kCountryIdFieldNumber = 2;
  inline ::google::protobuf::uint32 country_id() const;
  inline void set_country_id(::google::protobuf::uint32 value);

  // optional string battle_tag = 3;
  inline bool has_battle_tag() const;
  inline void clear_battle_tag();
  static const int kBattleTagFieldNumber = 3;
  inline const ::std::string& battle_tag() const;
  inline void set_battle_tag(const ::std::string& value);
  inline void set_battle_tag(const char* value);
  inline void set_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_battle_tag();
  inline ::std::string* release_battle_tag();
  inline void set_allocated_battle_tag(::std::string* battle_tag);

  // optional bool manual_review = 4 [default = false];
  inline bool has_manual_review() const;
  inline void clear_manual_review();
  static const int kManualReviewFieldNumber = 4;
  inline bool manual_review() const;
  inline void set_manual_review(bool value);

  // optional .bgs.protocol.account.v1.Identity identity = 5;
  inline bool has_identity() const;
  inline void clear_identity();
  static const int kIdentityFieldNumber = 5;
  inline const ::bgs::protocol::account::v1::Identity& identity() const;
  inline ::bgs::protocol::account::v1::Identity* mutable_identity();
  inline ::bgs::protocol::account::v1::Identity* release_identity();
  inline void set_allocated_identity(::bgs::protocol::account::v1::Identity* identity);

  // optional bool account_muted = 6 [default = false];
  inline bool has_account_muted() const;
  inline void clear_account_muted();
  static const int kAccountMutedFieldNumber = 6;
  inline bool account_muted() const;
  inline void set_account_muted(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountInfo)
 private:
  inline void set_has_account_paid();
  inline void clear_has_account_paid();
  inline void set_has_country_id();
  inline void clear_has_country_id();
  inline void set_has_battle_tag();
  inline void clear_has_battle_tag();
  inline void set_has_manual_review();
  inline void clear_has_manual_review();
  inline void set_has_identity();
  inline void clear_has_identity();
  inline void set_has_account_muted();
  inline void clear_has_account_muted();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* battle_tag_;
  ::google::protobuf::uint32 country_id_;
  bool account_paid_;
  bool manual_review_;
  bool account_muted_;
  ::bgs::protocol::account::v1::Identity* identity_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountInfo* default_instance_;
};
// -------------------------------------------------------------------

class ProgramTag : public ::google::protobuf::Message {
 public:
  ProgramTag();
  virtual ~ProgramTag();

  ProgramTag(const ProgramTag& from);

  inline ProgramTag& operator=(const ProgramTag& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProgramTag& default_instance();

  void Swap(ProgramTag* other);

  // implements Message ----------------------------------------------

  ProgramTag* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ProgramTag& from);
  void MergeFrom(const ProgramTag& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 program = 1;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 1;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // optional fixed32 tag = 2;
  inline bool has_tag() const;
  inline void clear_tag();
  static const int kTagFieldNumber = 2;
  inline ::google::protobuf::uint32 tag() const;
  inline void set_tag(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.ProgramTag)
 private:
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_tag();
  inline void clear_has_tag();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 tag_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ProgramTag* default_instance_;
};
// -------------------------------------------------------------------

class RegionTag : public ::google::protobuf::Message {
 public:
  RegionTag();
  virtual ~RegionTag();

  RegionTag(const RegionTag& from);

  inline RegionTag& operator=(const RegionTag& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const RegionTag& default_instance();

  void Swap(RegionTag* other);

  // implements Message ----------------------------------------------

  RegionTag* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RegionTag& from);
  void MergeFrom(const RegionTag& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 region = 1;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 1;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // optional fixed32 tag = 2;
  inline bool has_tag() const;
  inline void clear_tag();
  static const int kTagFieldNumber = 2;
  inline ::google::protobuf::uint32 tag() const;
  inline void set_tag(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.RegionTag)
 private:
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_tag();
  inline void clear_has_tag();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 region_;
  ::google::protobuf::uint32 tag_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static RegionTag* default_instance_;
};
// -------------------------------------------------------------------

class AccountFieldTags : public ::google::protobuf::Message {
 public:
  AccountFieldTags();
  virtual ~AccountFieldTags();

  AccountFieldTags(const AccountFieldTags& from);

  inline AccountFieldTags& operator=(const AccountFieldTags& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountFieldTags& default_instance();

  void Swap(AccountFieldTags* other);

  // implements Message ----------------------------------------------

  AccountFieldTags* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountFieldTags& from);
  void MergeFrom(const AccountFieldTags& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 account_level_info_tag = 2;
  inline bool has_account_level_info_tag() const;
  inline void clear_account_level_info_tag();
  static const int kAccountLevelInfoTagFieldNumber = 2;
  inline ::google::protobuf::uint32 account_level_info_tag() const;
  inline void set_account_level_info_tag(::google::protobuf::uint32 value);

  // optional fixed32 privacy_info_tag = 3;
  inline bool has_privacy_info_tag() const;
  inline void clear_privacy_info_tag();
  static const int kPrivacyInfoTagFieldNumber = 3;
  inline ::google::protobuf::uint32 privacy_info_tag() const;
  inline void set_privacy_info_tag(::google::protobuf::uint32 value);

  // optional fixed32 parental_control_info_tag = 4;
  inline bool has_parental_control_info_tag() const;
  inline void clear_parental_control_info_tag();
  static const int kParentalControlInfoTagFieldNumber = 4;
  inline ::google::protobuf::uint32 parental_control_info_tag() const;
  inline void set_parental_control_info_tag(::google::protobuf::uint32 value);

  // repeated .bgs.protocol.account.v1.ProgramTag game_level_info_tags = 7;
  inline int game_level_info_tags_size() const;
  inline void clear_game_level_info_tags();
  static const int kGameLevelInfoTagsFieldNumber = 7;
  inline const ::bgs::protocol::account::v1::ProgramTag& game_level_info_tags(int index) const;
  inline ::bgs::protocol::account::v1::ProgramTag* mutable_game_level_info_tags(int index);
  inline ::bgs::protocol::account::v1::ProgramTag* add_game_level_info_tags();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >&
      game_level_info_tags() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >*
      mutable_game_level_info_tags();

  // repeated .bgs.protocol.account.v1.ProgramTag game_status_tags = 9;
  inline int game_status_tags_size() const;
  inline void clear_game_status_tags();
  static const int kGameStatusTagsFieldNumber = 9;
  inline const ::bgs::protocol::account::v1::ProgramTag& game_status_tags(int index) const;
  inline ::bgs::protocol::account::v1::ProgramTag* mutable_game_status_tags(int index);
  inline ::bgs::protocol::account::v1::ProgramTag* add_game_status_tags();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >&
      game_status_tags() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >*
      mutable_game_status_tags();

  // repeated .bgs.protocol.account.v1.RegionTag game_account_tags = 11;
  inline int game_account_tags_size() const;
  inline void clear_game_account_tags();
  static const int kGameAccountTagsFieldNumber = 11;
  inline const ::bgs::protocol::account::v1::RegionTag& game_account_tags(int index) const;
  inline ::bgs::protocol::account::v1::RegionTag* mutable_game_account_tags(int index);
  inline ::bgs::protocol::account::v1::RegionTag* add_game_account_tags();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::RegionTag >&
      game_account_tags() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::RegionTag >*
      mutable_game_account_tags();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountFieldTags)
 private:
  inline void set_has_account_level_info_tag();
  inline void clear_has_account_level_info_tag();
  inline void set_has_privacy_info_tag();
  inline void clear_has_privacy_info_tag();
  inline void set_has_parental_control_info_tag();
  inline void clear_has_parental_control_info_tag();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 account_level_info_tag_;
  ::google::protobuf::uint32 privacy_info_tag_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag > game_level_info_tags_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag > game_status_tags_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::RegionTag > game_account_tags_;
  ::google::protobuf::uint32 parental_control_info_tag_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountFieldTags* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountFieldTags : public ::google::protobuf::Message {
 public:
  GameAccountFieldTags();
  virtual ~GameAccountFieldTags();

  GameAccountFieldTags(const GameAccountFieldTags& from);

  inline GameAccountFieldTags& operator=(const GameAccountFieldTags& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountFieldTags& default_instance();

  void Swap(GameAccountFieldTags* other);

  // implements Message ----------------------------------------------

  GameAccountFieldTags* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountFieldTags& from);
  void MergeFrom(const GameAccountFieldTags& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 game_level_info_tag = 2;
  inline bool has_game_level_info_tag() const;
  inline void clear_game_level_info_tag();
  static const int kGameLevelInfoTagFieldNumber = 2;
  inline ::google::protobuf::uint32 game_level_info_tag() const;
  inline void set_game_level_info_tag(::google::protobuf::uint32 value);

  // optional fixed32 game_time_info_tag = 3;
  inline bool has_game_time_info_tag() const;
  inline void clear_game_time_info_tag();
  static const int kGameTimeInfoTagFieldNumber = 3;
  inline ::google::protobuf::uint32 game_time_info_tag() const;
  inline void set_game_time_info_tag(::google::protobuf::uint32 value);

  // optional fixed32 game_status_tag = 4;
  inline bool has_game_status_tag() const;
  inline void clear_game_status_tag();
  static const int kGameStatusTagFieldNumber = 4;
  inline ::google::protobuf::uint32 game_status_tag() const;
  inline void set_game_status_tag(::google::protobuf::uint32 value);

  // optional fixed32 raf_info_tag = 5;
  inline bool has_raf_info_tag() const;
  inline void clear_raf_info_tag();
  static const int kRafInfoTagFieldNumber = 5;
  inline ::google::protobuf::uint32 raf_info_tag() const;
  inline void set_raf_info_tag(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountFieldTags)
 private:
  inline void set_has_game_level_info_tag();
  inline void clear_has_game_level_info_tag();
  inline void set_has_game_time_info_tag();
  inline void clear_has_game_time_info_tag();
  inline void set_has_game_status_tag();
  inline void clear_has_game_status_tag();
  inline void set_has_raf_info_tag();
  inline void clear_has_raf_info_tag();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 game_level_info_tag_;
  ::google::protobuf::uint32 game_time_info_tag_;
  ::google::protobuf::uint32 game_status_tag_;
  ::google::protobuf::uint32 raf_info_tag_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountFieldTags* default_instance_;
};
// -------------------------------------------------------------------

class AccountFieldOptions : public ::google::protobuf::Message {
 public:
  AccountFieldOptions();
  virtual ~AccountFieldOptions();

  AccountFieldOptions(const AccountFieldOptions& from);

  inline AccountFieldOptions& operator=(const AccountFieldOptions& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountFieldOptions& default_instance();

  void Swap(AccountFieldOptions* other);

  // implements Message ----------------------------------------------

  AccountFieldOptions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountFieldOptions& from);
  void MergeFrom(const AccountFieldOptions& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool all_fields = 1;
  inline bool has_all_fields() const;
  inline void clear_all_fields();
  static const int kAllFieldsFieldNumber = 1;
  inline bool all_fields() const;
  inline void set_all_fields(bool value);

  // optional bool field_account_level_info = 2;
  inline bool has_field_account_level_info() const;
  inline void clear_field_account_level_info();
  static const int kFieldAccountLevelInfoFieldNumber = 2;
  inline bool field_account_level_info() const;
  inline void set_field_account_level_info(bool value);

  // optional bool field_privacy_info = 3;
  inline bool has_field_privacy_info() const;
  inline void clear_field_privacy_info();
  static const int kFieldPrivacyInfoFieldNumber = 3;
  inline bool field_privacy_info() const;
  inline void set_field_privacy_info(bool value);

  // optional bool field_parental_control_info = 4;
  inline bool has_field_parental_control_info() const;
  inline void clear_field_parental_control_info();
  static const int kFieldParentalControlInfoFieldNumber = 4;
  inline bool field_parental_control_info() const;
  inline void set_field_parental_control_info(bool value);

  // optional bool field_game_level_info = 6;
  inline bool has_field_game_level_info() const;
  inline void clear_field_game_level_info();
  static const int kFieldGameLevelInfoFieldNumber = 6;
  inline bool field_game_level_info() const;
  inline void set_field_game_level_info(bool value);

  // optional bool field_game_status = 7;
  inline bool has_field_game_status() const;
  inline void clear_field_game_status();
  static const int kFieldGameStatusFieldNumber = 7;
  inline bool field_game_status() const;
  inline void set_field_game_status(bool value);

  // optional bool field_game_accounts = 8;
  inline bool has_field_game_accounts() const;
  inline void clear_field_game_accounts();
  static const int kFieldGameAccountsFieldNumber = 8;
  inline bool field_game_accounts() const;
  inline void set_field_game_accounts(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountFieldOptions)
 private:
  inline void set_has_all_fields();
  inline void clear_has_all_fields();
  inline void set_has_field_account_level_info();
  inline void clear_has_field_account_level_info();
  inline void set_has_field_privacy_info();
  inline void clear_has_field_privacy_info();
  inline void set_has_field_parental_control_info();
  inline void clear_has_field_parental_control_info();
  inline void set_has_field_game_level_info();
  inline void clear_has_field_game_level_info();
  inline void set_has_field_game_status();
  inline void clear_has_field_game_status();
  inline void set_has_field_game_accounts();
  inline void clear_has_field_game_accounts();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  bool all_fields_;
  bool field_account_level_info_;
  bool field_privacy_info_;
  bool field_parental_control_info_;
  bool field_game_level_info_;
  bool field_game_status_;
  bool field_game_accounts_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountFieldOptions* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountFieldOptions : public ::google::protobuf::Message {
 public:
  GameAccountFieldOptions();
  virtual ~GameAccountFieldOptions();

  GameAccountFieldOptions(const GameAccountFieldOptions& from);

  inline GameAccountFieldOptions& operator=(const GameAccountFieldOptions& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountFieldOptions& default_instance();

  void Swap(GameAccountFieldOptions* other);

  // implements Message ----------------------------------------------

  GameAccountFieldOptions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountFieldOptions& from);
  void MergeFrom(const GameAccountFieldOptions& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool all_fields = 1;
  inline bool has_all_fields() const;
  inline void clear_all_fields();
  static const int kAllFieldsFieldNumber = 1;
  inline bool all_fields() const;
  inline void set_all_fields(bool value);

  // optional bool field_game_level_info = 2;
  inline bool has_field_game_level_info() const;
  inline void clear_field_game_level_info();
  static const int kFieldGameLevelInfoFieldNumber = 2;
  inline bool field_game_level_info() const;
  inline void set_field_game_level_info(bool value);

  // optional bool field_game_time_info = 3;
  inline bool has_field_game_time_info() const;
  inline void clear_field_game_time_info();
  static const int kFieldGameTimeInfoFieldNumber = 3;
  inline bool field_game_time_info() const;
  inline void set_field_game_time_info(bool value);

  // optional bool field_game_status = 4;
  inline bool has_field_game_status() const;
  inline void clear_field_game_status();
  static const int kFieldGameStatusFieldNumber = 4;
  inline bool field_game_status() const;
  inline void set_field_game_status(bool value);

  // optional bool field_raf_info = 5;
  inline bool has_field_raf_info() const;
  inline void clear_field_raf_info();
  static const int kFieldRafInfoFieldNumber = 5;
  inline bool field_raf_info() const;
  inline void set_field_raf_info(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountFieldOptions)
 private:
  inline void set_has_all_fields();
  inline void clear_has_all_fields();
  inline void set_has_field_game_level_info();
  inline void clear_has_field_game_level_info();
  inline void set_has_field_game_time_info();
  inline void clear_has_field_game_time_info();
  inline void set_has_field_game_status();
  inline void clear_has_field_game_status();
  inline void set_has_field_raf_info();
  inline void clear_has_field_raf_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  bool all_fields_;
  bool field_game_level_info_;
  bool field_game_time_info_;
  bool field_game_status_;
  bool field_raf_info_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountFieldOptions* default_instance_;
};
// -------------------------------------------------------------------

class SubscriberReference : public ::google::protobuf::Message {
 public:
  SubscriberReference();
  virtual ~SubscriberReference();

  SubscriberReference(const SubscriberReference& from);

  inline SubscriberReference& operator=(const SubscriberReference& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SubscriberReference& default_instance();

  void Swap(SubscriberReference* other);

  // implements Message ----------------------------------------------

  SubscriberReference* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SubscriberReference& from);
  void MergeFrom(const SubscriberReference& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 object_id = 1 [default = 0];
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 1;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.EntityId entity_id = 2;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // optional .bgs.protocol.account.v1.AccountFieldOptions account_options = 3;
  inline bool has_account_options() const;
  inline void clear_account_options();
  static const int kAccountOptionsFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::AccountFieldOptions& account_options() const;
  inline ::bgs::protocol::account::v1::AccountFieldOptions* mutable_account_options();
  inline ::bgs::protocol::account::v1::AccountFieldOptions* release_account_options();
  inline void set_allocated_account_options(::bgs::protocol::account::v1::AccountFieldOptions* account_options);

  // optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 4;
  inline bool has_account_tags() const;
  inline void clear_account_tags();
  static const int kAccountTagsFieldNumber = 4;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& account_tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_account_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_account_tags();
  inline void set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags);

  // optional .bgs.protocol.account.v1.GameAccountFieldOptions game_account_options = 5;
  inline bool has_game_account_options() const;
  inline void clear_game_account_options();
  static const int kGameAccountOptionsFieldNumber = 5;
  inline const ::bgs::protocol::account::v1::GameAccountFieldOptions& game_account_options() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldOptions* mutable_game_account_options();
  inline ::bgs::protocol::account::v1::GameAccountFieldOptions* release_game_account_options();
  inline void set_allocated_game_account_options(::bgs::protocol::account::v1::GameAccountFieldOptions* game_account_options);

  // optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 6;
  inline bool has_game_account_tags() const;
  inline void clear_game_account_tags();
  static const int kGameAccountTagsFieldNumber = 6;
  inline const ::bgs::protocol::account::v1::GameAccountFieldTags& game_account_tags() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* mutable_game_account_tags();
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* release_game_account_tags();
  inline void set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags);

  // optional uint64 subscriber_id = 7 [default = 0];
  inline bool has_subscriber_id() const;
  inline void clear_subscriber_id();
  static const int kSubscriberIdFieldNumber = 7;
  inline ::google::protobuf::uint64 subscriber_id() const;
  inline void set_subscriber_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.SubscriberReference)
 private:
  inline void set_has_object_id();
  inline void clear_has_object_id();
  inline void set_has_entity_id();
  inline void clear_has_entity_id();
  inline void set_has_account_options();
  inline void clear_has_account_options();
  inline void set_has_account_tags();
  inline void clear_has_account_tags();
  inline void set_has_game_account_options();
  inline void clear_has_game_account_options();
  inline void set_has_game_account_tags();
  inline void clear_has_game_account_tags();
  inline void set_has_subscriber_id();
  inline void clear_has_subscriber_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 object_id_;
  ::bgs::protocol::EntityId* entity_id_;
  ::bgs::protocol::account::v1::AccountFieldOptions* account_options_;
  ::bgs::protocol::account::v1::AccountFieldTags* account_tags_;
  ::bgs::protocol::account::v1::GameAccountFieldOptions* game_account_options_;
  ::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags_;
  ::google::protobuf::uint64 subscriber_id_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static SubscriberReference* default_instance_;
};
// -------------------------------------------------------------------

class AccountLevelInfo : public ::google::protobuf::Message {
 public:
  AccountLevelInfo();
  virtual ~AccountLevelInfo();

  AccountLevelInfo(const AccountLevelInfo& from);

  inline AccountLevelInfo& operator=(const AccountLevelInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountLevelInfo& default_instance();

  void Swap(AccountLevelInfo* other);

  // implements Message ----------------------------------------------

  AccountLevelInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountLevelInfo& from);
  void MergeFrom(const AccountLevelInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .bgs.protocol.account.v1.AccountLicense licenses = 3;
  inline int licenses_size() const;
  inline void clear_licenses();
  static const int kLicensesFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::AccountLicense& licenses(int index) const;
  inline ::bgs::protocol::account::v1::AccountLicense* mutable_licenses(int index);
  inline ::bgs::protocol::account::v1::AccountLicense* add_licenses();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
      licenses() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
      mutable_licenses();

  // optional fixed32 default_currency = 4;
  inline bool has_default_currency() const;
  inline void clear_default_currency();
  static const int kDefaultCurrencyFieldNumber = 4;
  inline ::google::protobuf::uint32 default_currency() const;
  inline void set_default_currency(::google::protobuf::uint32 value);

  // optional string country = 5;
  inline bool has_country() const;
  inline void clear_country();
  static const int kCountryFieldNumber = 5;
  inline const ::std::string& country() const;
  inline void set_country(const ::std::string& value);
  inline void set_country(const char* value);
  inline void set_country(const char* value, size_t size);
  inline ::std::string* mutable_country();
  inline ::std::string* release_country();
  inline void set_allocated_country(::std::string* country);

  // optional uint32 preferred_region = 6;
  inline bool has_preferred_region() const;
  inline void clear_preferred_region();
  static const int kPreferredRegionFieldNumber = 6;
  inline ::google::protobuf::uint32 preferred_region() const;
  inline void set_preferred_region(::google::protobuf::uint32 value);

  // optional string full_name = 7;
  inline bool has_full_name() const;
  inline void clear_full_name();
  static const int kFullNameFieldNumber = 7;
  inline const ::std::string& full_name() const;
  inline void set_full_name(const ::std::string& value);
  inline void set_full_name(const char* value);
  inline void set_full_name(const char* value, size_t size);
  inline ::std::string* mutable_full_name();
  inline ::std::string* release_full_name();
  inline void set_allocated_full_name(::std::string* full_name);

  // optional string battle_tag = 8;
  inline bool has_battle_tag() const;
  inline void clear_battle_tag();
  static const int kBattleTagFieldNumber = 8;
  inline const ::std::string& battle_tag() const;
  inline void set_battle_tag(const ::std::string& value);
  inline void set_battle_tag(const char* value);
  inline void set_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_battle_tag();
  inline ::std::string* release_battle_tag();
  inline void set_allocated_battle_tag(::std::string* battle_tag);

  // optional bool muted = 9;
  inline bool has_muted() const;
  inline void clear_muted();
  static const int kMutedFieldNumber = 9;
  inline bool muted() const;
  inline void set_muted(bool value);

  // optional bool manual_review = 10;
  inline bool has_manual_review() const;
  inline void clear_manual_review();
  static const int kManualReviewFieldNumber = 10;
  inline bool manual_review() const;
  inline void set_manual_review(bool value);

  // optional bool account_paid_any = 11;
  inline bool has_account_paid_any() const;
  inline void clear_account_paid_any();
  static const int kAccountPaidAnyFieldNumber = 11;
  inline bool account_paid_any() const;
  inline void set_account_paid_any(bool value);

  // optional .bgs.protocol.account.v1.IdentityVerificationStatus identity_check_status = 12;
  inline bool has_identity_check_status() const;
  inline void clear_identity_check_status();
  static const int kIdentityCheckStatusFieldNumber = 12;
  inline ::bgs::protocol::account::v1::IdentityVerificationStatus identity_check_status() const;
  inline void set_identity_check_status(::bgs::protocol::account::v1::IdentityVerificationStatus value);

  // optional string email = 13;
  inline bool has_email() const;
  inline void clear_email();
  static const int kEmailFieldNumber = 13;
  inline const ::std::string& email() const;
  inline void set_email(const ::std::string& value);
  inline void set_email(const char* value);
  inline void set_email(const char* value, size_t size);
  inline ::std::string* mutable_email();
  inline ::std::string* release_email();
  inline void set_allocated_email(::std::string* email);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountLevelInfo)
 private:
  inline void set_has_default_currency();
  inline void clear_has_default_currency();
  inline void set_has_country();
  inline void clear_has_country();
  inline void set_has_preferred_region();
  inline void clear_has_preferred_region();
  inline void set_has_full_name();
  inline void clear_has_full_name();
  inline void set_has_battle_tag();
  inline void clear_has_battle_tag();
  inline void set_has_muted();
  inline void clear_has_muted();
  inline void set_has_manual_review();
  inline void clear_has_manual_review();
  inline void set_has_account_paid_any();
  inline void clear_has_account_paid_any();
  inline void set_has_identity_check_status();
  inline void clear_has_identity_check_status();
  inline void set_has_email();
  inline void clear_has_email();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense > licenses_;
  ::std::string* country_;
  ::google::protobuf::uint32 default_currency_;
  ::google::protobuf::uint32 preferred_region_;
  ::std::string* full_name_;
  ::std::string* battle_tag_;
  bool muted_;
  bool manual_review_;
  bool account_paid_any_;
  int identity_check_status_;
  ::std::string* email_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountLevelInfo* default_instance_;
};
// -------------------------------------------------------------------

class PrivacyInfo : public ::google::protobuf::Message {
 public:
  PrivacyInfo();
  virtual ~PrivacyInfo();

  PrivacyInfo(const PrivacyInfo& from);

  inline PrivacyInfo& operator=(const PrivacyInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PrivacyInfo& default_instance();

  void Swap(PrivacyInfo* other);

  // implements Message ----------------------------------------------

  PrivacyInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PrivacyInfo& from);
  void MergeFrom(const PrivacyInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  typedef PrivacyInfo_GameInfoPrivacy GameInfoPrivacy;
  static const GameInfoPrivacy PRIVACY_ME = PrivacyInfo_GameInfoPrivacy_PRIVACY_ME;
  static const GameInfoPrivacy PRIVACY_FRIENDS = PrivacyInfo_GameInfoPrivacy_PRIVACY_FRIENDS;
  static const GameInfoPrivacy PRIVACY_EVERYONE = PrivacyInfo_GameInfoPrivacy_PRIVACY_EVERYONE;
  static inline bool GameInfoPrivacy_IsValid(int value) {
    return PrivacyInfo_GameInfoPrivacy_IsValid(value);
  }
  static const GameInfoPrivacy GameInfoPrivacy_MIN =
    PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_MIN;
  static const GameInfoPrivacy GameInfoPrivacy_MAX =
    PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_MAX;
  static const int GameInfoPrivacy_ARRAYSIZE =
    PrivacyInfo_GameInfoPrivacy_GameInfoPrivacy_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  GameInfoPrivacy_descriptor() {
    return PrivacyInfo_GameInfoPrivacy_descriptor();
  }
  static inline const ::std::string& GameInfoPrivacy_Name(GameInfoPrivacy value) {
    return PrivacyInfo_GameInfoPrivacy_Name(value);
  }
  static inline bool GameInfoPrivacy_Parse(const ::std::string& name,
      GameInfoPrivacy* value) {
    return PrivacyInfo_GameInfoPrivacy_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // optional bool is_using_rid = 3;
  inline bool has_is_using_rid() const;
  inline void clear_is_using_rid();
  static const int kIsUsingRidFieldNumber = 3;
  inline bool is_using_rid() const;
  inline void set_is_using_rid(bool value);

  // optional bool is_real_id_visible_for_view_friends = 4;
  inline bool has_is_real_id_visible_for_view_friends() const;
  inline void clear_is_real_id_visible_for_view_friends();
  static const int kIsRealIdVisibleForViewFriendsFieldNumber = 4;
  inline bool is_real_id_visible_for_view_friends() const;
  inline void set_is_real_id_visible_for_view_friends(bool value);

  // optional bool is_hidden_from_friend_finder = 5;
  inline bool has_is_hidden_from_friend_finder() const;
  inline void clear_is_hidden_from_friend_finder();
  static const int kIsHiddenFromFriendFinderFieldNumber = 5;
  inline bool is_hidden_from_friend_finder() const;
  inline void set_is_hidden_from_friend_finder(bool value);

  // optional .bgs.protocol.account.v1.PrivacyInfo.GameInfoPrivacy game_info_privacy = 6 [default = PRIVACY_FRIENDS];
  inline bool has_game_info_privacy() const;
  inline void clear_game_info_privacy();
  static const int kGameInfoPrivacyFieldNumber = 6;
  inline ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy game_info_privacy() const;
  inline void set_game_info_privacy(::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.PrivacyInfo)
 private:
  inline void set_has_is_using_rid();
  inline void clear_has_is_using_rid();
  inline void set_has_is_real_id_visible_for_view_friends();
  inline void clear_has_is_real_id_visible_for_view_friends();
  inline void set_has_is_hidden_from_friend_finder();
  inline void clear_has_is_hidden_from_friend_finder();
  inline void set_has_game_info_privacy();
  inline void clear_has_game_info_privacy();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  bool is_using_rid_;
  bool is_real_id_visible_for_view_friends_;
  bool is_hidden_from_friend_finder_;
  int game_info_privacy_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static PrivacyInfo* default_instance_;
};
// -------------------------------------------------------------------

class ParentalControlInfo : public ::google::protobuf::Message {
 public:
  ParentalControlInfo();
  virtual ~ParentalControlInfo();

  ParentalControlInfo(const ParentalControlInfo& from);

  inline ParentalControlInfo& operator=(const ParentalControlInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ParentalControlInfo& default_instance();

  void Swap(ParentalControlInfo* other);

  // implements Message ----------------------------------------------

  ParentalControlInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ParentalControlInfo& from);
  void MergeFrom(const ParentalControlInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string timezone = 3;
  inline bool has_timezone() const;
  inline void clear_timezone();
  static const int kTimezoneFieldNumber = 3;
  inline const ::std::string& timezone() const;
  inline void set_timezone(const ::std::string& value);
  inline void set_timezone(const char* value);
  inline void set_timezone(const char* value, size_t size);
  inline ::std::string* mutable_timezone();
  inline ::std::string* release_timezone();
  inline void set_allocated_timezone(::std::string* timezone);

  // optional uint32 minutes_per_day = 4;
  inline bool has_minutes_per_day() const;
  inline void clear_minutes_per_day();
  static const int kMinutesPerDayFieldNumber = 4;
  inline ::google::protobuf::uint32 minutes_per_day() const;
  inline void set_minutes_per_day(::google::protobuf::uint32 value);

  // optional uint32 minutes_per_week = 5;
  inline bool has_minutes_per_week() const;
  inline void clear_minutes_per_week();
  static const int kMinutesPerWeekFieldNumber = 5;
  inline ::google::protobuf::uint32 minutes_per_week() const;
  inline void set_minutes_per_week(::google::protobuf::uint32 value);

  // optional bool can_receive_voice = 6;
  inline bool has_can_receive_voice() const;
  inline void clear_can_receive_voice();
  static const int kCanReceiveVoiceFieldNumber = 6;
  inline bool can_receive_voice() const;
  inline void set_can_receive_voice(bool value);

  // optional bool can_send_voice = 7;
  inline bool has_can_send_voice() const;
  inline void clear_can_send_voice();
  static const int kCanSendVoiceFieldNumber = 7;
  inline bool can_send_voice() const;
  inline void set_can_send_voice(bool value);

  // repeated bool play_schedule = 8;
  inline int play_schedule_size() const;
  inline void clear_play_schedule();
  static const int kPlayScheduleFieldNumber = 8;
  inline bool play_schedule(int index) const;
  inline void set_play_schedule(int index, bool value);
  inline void add_play_schedule(bool value);
  inline const ::google::protobuf::RepeatedField< bool >&
      play_schedule() const;
  inline ::google::protobuf::RepeatedField< bool >*
      mutable_play_schedule();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.ParentalControlInfo)
 private:
  inline void set_has_timezone();
  inline void clear_has_timezone();
  inline void set_has_minutes_per_day();
  inline void clear_has_minutes_per_day();
  inline void set_has_minutes_per_week();
  inline void clear_has_minutes_per_week();
  inline void set_has_can_receive_voice();
  inline void clear_has_can_receive_voice();
  inline void set_has_can_send_voice();
  inline void clear_has_can_send_voice();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* timezone_;
  ::google::protobuf::uint32 minutes_per_day_;
  ::google::protobuf::uint32 minutes_per_week_;
  ::google::protobuf::RepeatedField< bool > play_schedule_;
  bool can_receive_voice_;
  bool can_send_voice_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ParentalControlInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameLevelInfo : public ::google::protobuf::Message {
 public:
  GameLevelInfo();
  virtual ~GameLevelInfo();

  GameLevelInfo(const GameLevelInfo& from);

  inline GameLevelInfo& operator=(const GameLevelInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameLevelInfo& default_instance();

  void Swap(GameLevelInfo* other);

  // implements Message ----------------------------------------------

  GameLevelInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameLevelInfo& from);
  void MergeFrom(const GameLevelInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool is_trial = 4;
  inline bool has_is_trial() const;
  inline void clear_is_trial();
  static const int kIsTrialFieldNumber = 4;
  inline bool is_trial() const;
  inline void set_is_trial(bool value);

  // optional bool is_lifetime = 5;
  inline bool has_is_lifetime() const;
  inline void clear_is_lifetime();
  static const int kIsLifetimeFieldNumber = 5;
  inline bool is_lifetime() const;
  inline void set_is_lifetime(bool value);

  // optional bool is_restricted = 6;
  inline bool has_is_restricted() const;
  inline void clear_is_restricted();
  static const int kIsRestrictedFieldNumber = 6;
  inline bool is_restricted() const;
  inline void set_is_restricted(bool value);

  // optional bool is_beta = 7;
  inline bool has_is_beta() const;
  inline void clear_is_beta();
  static const int kIsBetaFieldNumber = 7;
  inline bool is_beta() const;
  inline void set_is_beta(bool value);

  // optional string name = 8;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 8;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional fixed32 program = 9;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 9;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // repeated .bgs.protocol.account.v1.AccountLicense licenses = 10;
  inline int licenses_size() const;
  inline void clear_licenses();
  static const int kLicensesFieldNumber = 10;
  inline const ::bgs::protocol::account::v1::AccountLicense& licenses(int index) const;
  inline ::bgs::protocol::account::v1::AccountLicense* mutable_licenses(int index);
  inline ::bgs::protocol::account::v1::AccountLicense* add_licenses();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
      licenses() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
      mutable_licenses();

  // optional uint32 realm_permissions = 11;
  inline bool has_realm_permissions() const;
  inline void clear_realm_permissions();
  static const int kRealmPermissionsFieldNumber = 11;
  inline ::google::protobuf::uint32 realm_permissions() const;
  inline void set_realm_permissions(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameLevelInfo)
 private:
  inline void set_has_is_trial();
  inline void clear_has_is_trial();
  inline void set_has_is_lifetime();
  inline void clear_has_is_lifetime();
  inline void set_has_is_restricted();
  inline void clear_has_is_restricted();
  inline void set_has_is_beta();
  inline void clear_has_is_beta();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_realm_permissions();
  inline void clear_has_realm_permissions();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  bool is_trial_;
  bool is_lifetime_;
  bool is_restricted_;
  bool is_beta_;
  ::google::protobuf::uint32 program_;
  ::std::string* name_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense > licenses_;
  ::google::protobuf::uint32 realm_permissions_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameLevelInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameTimeInfo : public ::google::protobuf::Message {
 public:
  GameTimeInfo();
  virtual ~GameTimeInfo();

  GameTimeInfo(const GameTimeInfo& from);

  inline GameTimeInfo& operator=(const GameTimeInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameTimeInfo& default_instance();

  void Swap(GameTimeInfo* other);

  // implements Message ----------------------------------------------

  GameTimeInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameTimeInfo& from);
  void MergeFrom(const GameTimeInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool is_unlimited_play_time = 3;
  inline bool has_is_unlimited_play_time() const;
  inline void clear_is_unlimited_play_time();
  static const int kIsUnlimitedPlayTimeFieldNumber = 3;
  inline bool is_unlimited_play_time() const;
  inline void set_is_unlimited_play_time(bool value);

  // optional uint64 play_time_expires = 5;
  inline bool has_play_time_expires() const;
  inline void clear_play_time_expires();
  static const int kPlayTimeExpiresFieldNumber = 5;
  inline ::google::protobuf::uint64 play_time_expires() const;
  inline void set_play_time_expires(::google::protobuf::uint64 value);

  // optional bool is_subscription = 6;
  inline bool has_is_subscription() const;
  inline void clear_is_subscription();
  static const int kIsSubscriptionFieldNumber = 6;
  inline bool is_subscription() const;
  inline void set_is_subscription(bool value);

  // optional bool is_recurring_subscription = 7;
  inline bool has_is_recurring_subscription() const;
  inline void clear_is_recurring_subscription();
  static const int kIsRecurringSubscriptionFieldNumber = 7;
  inline bool is_recurring_subscription() const;
  inline void set_is_recurring_subscription(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameTimeInfo)
 private:
  inline void set_has_is_unlimited_play_time();
  inline void clear_has_is_unlimited_play_time();
  inline void set_has_play_time_expires();
  inline void clear_has_play_time_expires();
  inline void set_has_is_subscription();
  inline void clear_has_is_subscription();
  inline void set_has_is_recurring_subscription();
  inline void clear_has_is_recurring_subscription();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 play_time_expires_;
  bool is_unlimited_play_time_;
  bool is_subscription_;
  bool is_recurring_subscription_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameTimeInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameTimeRemainingInfo : public ::google::protobuf::Message {
 public:
  GameTimeRemainingInfo();
  virtual ~GameTimeRemainingInfo();

  GameTimeRemainingInfo(const GameTimeRemainingInfo& from);

  inline GameTimeRemainingInfo& operator=(const GameTimeRemainingInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameTimeRemainingInfo& default_instance();

  void Swap(GameTimeRemainingInfo* other);

  // implements Message ----------------------------------------------

  GameTimeRemainingInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameTimeRemainingInfo& from);
  void MergeFrom(const GameTimeRemainingInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 minutes_remaining = 1;
  inline bool has_minutes_remaining() const;
  inline void clear_minutes_remaining();
  static const int kMinutesRemainingFieldNumber = 1;
  inline ::google::protobuf::uint32 minutes_remaining() const;
  inline void set_minutes_remaining(::google::protobuf::uint32 value);

  // optional uint32 parental_daily_minutes_remaining = 2;
  inline bool has_parental_daily_minutes_remaining() const;
  inline void clear_parental_daily_minutes_remaining();
  static const int kParentalDailyMinutesRemainingFieldNumber = 2;
  inline ::google::protobuf::uint32 parental_daily_minutes_remaining() const;
  inline void set_parental_daily_minutes_remaining(::google::protobuf::uint32 value);

  // optional uint32 parental_weekly_minutes_remaining = 3;
  inline bool has_parental_weekly_minutes_remaining() const;
  inline void clear_parental_weekly_minutes_remaining();
  static const int kParentalWeeklyMinutesRemainingFieldNumber = 3;
  inline ::google::protobuf::uint32 parental_weekly_minutes_remaining() const;
  inline void set_parental_weekly_minutes_remaining(::google::protobuf::uint32 value);

  // optional uint32 seconds_remaining_until_kick = 4;
  inline bool has_seconds_remaining_until_kick() const;
  inline void clear_seconds_remaining_until_kick();
  static const int kSecondsRemainingUntilKickFieldNumber = 4;
  inline ::google::protobuf::uint32 seconds_remaining_until_kick() const;
  inline void set_seconds_remaining_until_kick(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameTimeRemainingInfo)
 private:
  inline void set_has_minutes_remaining();
  inline void clear_has_minutes_remaining();
  inline void set_has_parental_daily_minutes_remaining();
  inline void clear_has_parental_daily_minutes_remaining();
  inline void set_has_parental_weekly_minutes_remaining();
  inline void clear_has_parental_weekly_minutes_remaining();
  inline void set_has_seconds_remaining_until_kick();
  inline void clear_has_seconds_remaining_until_kick();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 minutes_remaining_;
  ::google::protobuf::uint32 parental_daily_minutes_remaining_;
  ::google::protobuf::uint32 parental_weekly_minutes_remaining_;
  ::google::protobuf::uint32 seconds_remaining_until_kick_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameTimeRemainingInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameStatus : public ::google::protobuf::Message {
 public:
  GameStatus();
  virtual ~GameStatus();

  GameStatus(const GameStatus& from);

  inline GameStatus& operator=(const GameStatus& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameStatus& default_instance();

  void Swap(GameStatus* other);

  // implements Message ----------------------------------------------

  GameStatus* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameStatus& from);
  void MergeFrom(const GameStatus& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool is_suspended = 4;
  inline bool has_is_suspended() const;
  inline void clear_is_suspended();
  static const int kIsSuspendedFieldNumber = 4;
  inline bool is_suspended() const;
  inline void set_is_suspended(bool value);

  // optional bool is_banned = 5;
  inline bool has_is_banned() const;
  inline void clear_is_banned();
  static const int kIsBannedFieldNumber = 5;
  inline bool is_banned() const;
  inline void set_is_banned(bool value);

  // optional uint64 suspension_expires = 6;
  inline bool has_suspension_expires() const;
  inline void clear_suspension_expires();
  static const int kSuspensionExpiresFieldNumber = 6;
  inline ::google::protobuf::uint64 suspension_expires() const;
  inline void set_suspension_expires(::google::protobuf::uint64 value);

  // optional fixed32 program = 7;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 7;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // optional bool is_locked = 8;
  inline bool has_is_locked() const;
  inline void clear_is_locked();
  static const int kIsLockedFieldNumber = 8;
  inline bool is_locked() const;
  inline void set_is_locked(bool value);

  // optional bool is_bam_unlockable = 9;
  inline bool has_is_bam_unlockable() const;
  inline void clear_is_bam_unlockable();
  static const int kIsBamUnlockableFieldNumber = 9;
  inline bool is_bam_unlockable() const;
  inline void set_is_bam_unlockable(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameStatus)
 private:
  inline void set_has_is_suspended();
  inline void clear_has_is_suspended();
  inline void set_has_is_banned();
  inline void clear_has_is_banned();
  inline void set_has_suspension_expires();
  inline void clear_has_suspension_expires();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_is_locked();
  inline void clear_has_is_locked();
  inline void set_has_is_bam_unlockable();
  inline void clear_has_is_bam_unlockable();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 suspension_expires_;
  bool is_suspended_;
  bool is_banned_;
  bool is_locked_;
  bool is_bam_unlockable_;
  ::google::protobuf::uint32 program_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameStatus* default_instance_;
};
// -------------------------------------------------------------------

class RAFInfo : public ::google::protobuf::Message {
 public:
  RAFInfo();
  virtual ~RAFInfo();

  RAFInfo(const RAFInfo& from);

  inline RAFInfo& operator=(const RAFInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const RAFInfo& default_instance();

  void Swap(RAFInfo* other);

  // implements Message ----------------------------------------------

  RAFInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RAFInfo& from);
  void MergeFrom(const RAFInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bytes raf_info = 1;
  inline bool has_raf_info() const;
  inline void clear_raf_info();
  static const int kRafInfoFieldNumber = 1;
  inline const ::std::string& raf_info() const;
  inline void set_raf_info(const ::std::string& value);
  inline void set_raf_info(const char* value);
  inline void set_raf_info(const void* value, size_t size);
  inline ::std::string* mutable_raf_info();
  inline ::std::string* release_raf_info();
  inline void set_allocated_raf_info(::std::string* raf_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.RAFInfo)
 private:
  inline void set_has_raf_info();
  inline void clear_has_raf_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* raf_info_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static RAFInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameSessionInfo : public ::google::protobuf::Message {
 public:
  GameSessionInfo();
  virtual ~GameSessionInfo();

  GameSessionInfo(const GameSessionInfo& from);

  inline GameSessionInfo& operator=(const GameSessionInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameSessionInfo& default_instance();

  void Swap(GameSessionInfo* other);

  // implements Message ----------------------------------------------

  GameSessionInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameSessionInfo& from);
  void MergeFrom(const GameSessionInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 start_time = 3 [deprecated = true];
  inline bool has_start_time() const PROTOBUF_DEPRECATED;
  inline void clear_start_time() PROTOBUF_DEPRECATED;
  static const int kStartTimeFieldNumber = 3;
  inline ::google::protobuf::uint32 start_time() const PROTOBUF_DEPRECATED;
  inline void set_start_time(::google::protobuf::uint32 value) PROTOBUF_DEPRECATED;

  // optional .bgs.protocol.account.v1.GameSessionLocation location = 4;
  inline bool has_location() const;
  inline void clear_location();
  static const int kLocationFieldNumber = 4;
  inline const ::bgs::protocol::account::v1::GameSessionLocation& location() const;
  inline ::bgs::protocol::account::v1::GameSessionLocation* mutable_location();
  inline ::bgs::protocol::account::v1::GameSessionLocation* release_location();
  inline void set_allocated_location(::bgs::protocol::account::v1::GameSessionLocation* location);

  // optional bool has_benefactor = 5;
  inline bool has_has_benefactor() const;
  inline void clear_has_benefactor();
  static const int kHasBenefactorFieldNumber = 5;
  inline bool has_benefactor() const;
  inline void set_has_benefactor(bool value);

  // optional bool is_using_igr = 6;
  inline bool has_is_using_igr() const;
  inline void clear_is_using_igr();
  static const int kIsUsingIgrFieldNumber = 6;
  inline bool is_using_igr() const;
  inline void set_is_using_igr(bool value);

  // optional bool parental_controls_active = 7;
  inline bool has_parental_controls_active() const;
  inline void clear_parental_controls_active();
  static const int kParentalControlsActiveFieldNumber = 7;
  inline bool parental_controls_active() const;
  inline void set_parental_controls_active(bool value);

  // optional uint64 start_time_sec = 8;
  inline bool has_start_time_sec() const;
  inline void clear_start_time_sec();
  static const int kStartTimeSecFieldNumber = 8;
  inline ::google::protobuf::uint64 start_time_sec() const;
  inline void set_start_time_sec(::google::protobuf::uint64 value);

  // optional .bgs.protocol.account.v1.IgrId igr_id = 9;
  inline bool has_igr_id() const;
  inline void clear_igr_id();
  static const int kIgrIdFieldNumber = 9;
  inline const ::bgs::protocol::account::v1::IgrId& igr_id() const;
  inline ::bgs::protocol::account::v1::IgrId* mutable_igr_id();
  inline ::bgs::protocol::account::v1::IgrId* release_igr_id();
  inline void set_allocated_igr_id(::bgs::protocol::account::v1::IgrId* igr_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameSessionInfo)
 private:
  inline void set_has_start_time();
  inline void clear_has_start_time();
  inline void set_has_location();
  inline void clear_has_location();
  inline void set_has_has_benefactor();
  inline void clear_has_has_benefactor();
  inline void set_has_is_using_igr();
  inline void clear_has_is_using_igr();
  inline void set_has_parental_controls_active();
  inline void clear_has_parental_controls_active();
  inline void set_has_start_time_sec();
  inline void clear_has_start_time_sec();
  inline void set_has_igr_id();
  inline void clear_has_igr_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameSessionLocation* location_;
  ::google::protobuf::uint32 start_time_;
  bool has_benefactor_;
  bool is_using_igr_;
  bool parental_controls_active_;
  ::google::protobuf::uint64 start_time_sec_;
  ::bgs::protocol::account::v1::IgrId* igr_id_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameSessionInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameSessionUpdateInfo : public ::google::protobuf::Message {
 public:
  GameSessionUpdateInfo();
  virtual ~GameSessionUpdateInfo();

  GameSessionUpdateInfo(const GameSessionUpdateInfo& from);

  inline GameSessionUpdateInfo& operator=(const GameSessionUpdateInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameSessionUpdateInfo& default_instance();

  void Swap(GameSessionUpdateInfo* other);

  // implements Message ----------------------------------------------

  GameSessionUpdateInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameSessionUpdateInfo& from);
  void MergeFrom(const GameSessionUpdateInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.CAIS cais = 8;
  inline bool has_cais() const;
  inline void clear_cais();
  static const int kCaisFieldNumber = 8;
  inline const ::bgs::protocol::account::v1::CAIS& cais() const;
  inline ::bgs::protocol::account::v1::CAIS* mutable_cais();
  inline ::bgs::protocol::account::v1::CAIS* release_cais();
  inline void set_allocated_cais(::bgs::protocol::account::v1::CAIS* cais);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameSessionUpdateInfo)
 private:
  inline void set_has_cais();
  inline void clear_has_cais();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::CAIS* cais_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameSessionUpdateInfo* default_instance_;
};
// -------------------------------------------------------------------

class GameSessionLocation : public ::google::protobuf::Message {
 public:
  GameSessionLocation();
  virtual ~GameSessionLocation();

  GameSessionLocation(const GameSessionLocation& from);

  inline GameSessionLocation& operator=(const GameSessionLocation& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameSessionLocation& default_instance();

  void Swap(GameSessionLocation* other);

  // implements Message ----------------------------------------------

  GameSessionLocation* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameSessionLocation& from);
  void MergeFrom(const GameSessionLocation& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string ip_address = 1;
  inline bool has_ip_address() const;
  inline void clear_ip_address();
  static const int kIpAddressFieldNumber = 1;
  inline const ::std::string& ip_address() const;
  inline void set_ip_address(const ::std::string& value);
  inline void set_ip_address(const char* value);
  inline void set_ip_address(const char* value, size_t size);
  inline ::std::string* mutable_ip_address();
  inline ::std::string* release_ip_address();
  inline void set_allocated_ip_address(::std::string* ip_address);

  // optional uint32 country = 2;
  inline bool has_country() const;
  inline void clear_country();
  static const int kCountryFieldNumber = 2;
  inline ::google::protobuf::uint32 country() const;
  inline void set_country(::google::protobuf::uint32 value);

  // optional string city = 3;
  inline bool has_city() const;
  inline void clear_city();
  static const int kCityFieldNumber = 3;
  inline const ::std::string& city() const;
  inline void set_city(const ::std::string& value);
  inline void set_city(const char* value);
  inline void set_city(const char* value, size_t size);
  inline ::std::string* mutable_city();
  inline ::std::string* release_city();
  inline void set_allocated_city(::std::string* city);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameSessionLocation)
 private:
  inline void set_has_ip_address();
  inline void clear_has_ip_address();
  inline void set_has_country();
  inline void clear_has_country();
  inline void set_has_city();
  inline void clear_has_city();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* ip_address_;
  ::std::string* city_;
  ::google::protobuf::uint32 country_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameSessionLocation* default_instance_;
};
// -------------------------------------------------------------------

class CAIS : public ::google::protobuf::Message {
 public:
  CAIS();
  virtual ~CAIS();

  CAIS(const CAIS& from);

  inline CAIS& operator=(const CAIS& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CAIS& default_instance();

  void Swap(CAIS* other);

  // implements Message ----------------------------------------------

  CAIS* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CAIS& from);
  void MergeFrom(const CAIS& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 played_minutes = 1;
  inline bool has_played_minutes() const;
  inline void clear_played_minutes();
  static const int kPlayedMinutesFieldNumber = 1;
  inline ::google::protobuf::uint32 played_minutes() const;
  inline void set_played_minutes(::google::protobuf::uint32 value);

  // optional uint32 rested_minutes = 2;
  inline bool has_rested_minutes() const;
  inline void clear_rested_minutes();
  static const int kRestedMinutesFieldNumber = 2;
  inline ::google::protobuf::uint32 rested_minutes() const;
  inline void set_rested_minutes(::google::protobuf::uint32 value);

  // optional uint64 last_heard_time = 3;
  inline bool has_last_heard_time() const;
  inline void clear_last_heard_time();
  static const int kLastHeardTimeFieldNumber = 3;
  inline ::google::protobuf::uint64 last_heard_time() const;
  inline void set_last_heard_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.CAIS)
 private:
  inline void set_has_played_minutes();
  inline void clear_has_played_minutes();
  inline void set_has_rested_minutes();
  inline void clear_has_rested_minutes();
  inline void set_has_last_heard_time();
  inline void clear_has_last_heard_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 played_minutes_;
  ::google::protobuf::uint32 rested_minutes_;
  ::google::protobuf::uint64 last_heard_time_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static CAIS* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountList : public ::google::protobuf::Message {
 public:
  GameAccountList();
  virtual ~GameAccountList();

  GameAccountList(const GameAccountList& from);

  inline GameAccountList& operator=(const GameAccountList& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountList& default_instance();

  void Swap(GameAccountList* other);

  // implements Message ----------------------------------------------

  GameAccountList* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountList& from);
  void MergeFrom(const GameAccountList& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 region = 3;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 3;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // repeated .bgs.protocol.account.v1.GameAccountHandle handle = 4;
  inline int handle_size() const;
  inline void clear_handle();
  static const int kHandleFieldNumber = 4;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& handle(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_handle(int index);
  inline ::bgs::protocol::account::v1::GameAccountHandle* add_handle();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >&
      handle() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >*
      mutable_handle();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountList)
 private:
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle > handle_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountList* default_instance_;
};
// -------------------------------------------------------------------

class AccountState : public ::google::protobuf::Message {
 public:
  AccountState();
  virtual ~AccountState();

  AccountState(const AccountState& from);

  inline AccountState& operator=(const AccountState& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountState& default_instance();

  void Swap(AccountState* other);

  // implements Message ----------------------------------------------

  AccountState* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountState& from);
  void MergeFrom(const AccountState& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.AccountLevelInfo account_level_info = 1;
  inline bool has_account_level_info() const;
  inline void clear_account_level_info();
  static const int kAccountLevelInfoFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountLevelInfo& account_level_info() const;
  inline ::bgs::protocol::account::v1::AccountLevelInfo* mutable_account_level_info();
  inline ::bgs::protocol::account::v1::AccountLevelInfo* release_account_level_info();
  inline void set_allocated_account_level_info(::bgs::protocol::account::v1::AccountLevelInfo* account_level_info);

  // optional .bgs.protocol.account.v1.PrivacyInfo privacy_info = 2;
  inline bool has_privacy_info() const;
  inline void clear_privacy_info();
  static const int kPrivacyInfoFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::PrivacyInfo& privacy_info() const;
  inline ::bgs::protocol::account::v1::PrivacyInfo* mutable_privacy_info();
  inline ::bgs::protocol::account::v1::PrivacyInfo* release_privacy_info();
  inline void set_allocated_privacy_info(::bgs::protocol::account::v1::PrivacyInfo* privacy_info);

  // optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 3;
  inline bool has_parental_control_info() const;
  inline void clear_parental_control_info();
  static const int kParentalControlInfoFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::ParentalControlInfo& parental_control_info() const;
  inline ::bgs::protocol::account::v1::ParentalControlInfo* mutable_parental_control_info();
  inline ::bgs::protocol::account::v1::ParentalControlInfo* release_parental_control_info();
  inline void set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info);

  // repeated .bgs.protocol.account.v1.GameLevelInfo game_level_info = 5;
  inline int game_level_info_size() const;
  inline void clear_game_level_info();
  static const int kGameLevelInfoFieldNumber = 5;
  inline const ::bgs::protocol::account::v1::GameLevelInfo& game_level_info(int index) const;
  inline ::bgs::protocol::account::v1::GameLevelInfo* mutable_game_level_info(int index);
  inline ::bgs::protocol::account::v1::GameLevelInfo* add_game_level_info();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameLevelInfo >&
      game_level_info() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameLevelInfo >*
      mutable_game_level_info();

  // repeated .bgs.protocol.account.v1.GameStatus game_status = 6;
  inline int game_status_size() const;
  inline void clear_game_status();
  static const int kGameStatusFieldNumber = 6;
  inline const ::bgs::protocol::account::v1::GameStatus& game_status(int index) const;
  inline ::bgs::protocol::account::v1::GameStatus* mutable_game_status(int index);
  inline ::bgs::protocol::account::v1::GameStatus* add_game_status();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameStatus >&
      game_status() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameStatus >*
      mutable_game_status();

  // repeated .bgs.protocol.account.v1.GameAccountList game_accounts = 7;
  inline int game_accounts_size() const;
  inline void clear_game_accounts();
  static const int kGameAccountsFieldNumber = 7;
  inline const ::bgs::protocol::account::v1::GameAccountList& game_accounts(int index) const;
  inline ::bgs::protocol::account::v1::GameAccountList* mutable_game_accounts(int index);
  inline ::bgs::protocol::account::v1::GameAccountList* add_game_accounts();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >&
      game_accounts() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >*
      mutable_game_accounts();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountState)
 private:
  inline void set_has_account_level_info();
  inline void clear_has_account_level_info();
  inline void set_has_privacy_info();
  inline void clear_has_privacy_info();
  inline void set_has_parental_control_info();
  inline void clear_has_parental_control_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountLevelInfo* account_level_info_;
  ::bgs::protocol::account::v1::PrivacyInfo* privacy_info_;
  ::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameLevelInfo > game_level_info_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameStatus > game_status_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList > game_accounts_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountState* default_instance_;
};
// -------------------------------------------------------------------

class AccountStateTagged : public ::google::protobuf::Message {
 public:
  AccountStateTagged();
  virtual ~AccountStateTagged();

  AccountStateTagged(const AccountStateTagged& from);

  inline AccountStateTagged& operator=(const AccountStateTagged& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AccountStateTagged& default_instance();

  void Swap(AccountStateTagged* other);

  // implements Message ----------------------------------------------

  AccountStateTagged* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AccountStateTagged& from);
  void MergeFrom(const AccountStateTagged& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.AccountState account_state = 1;
  inline bool has_account_state() const;
  inline void clear_account_state();
  static const int kAccountStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountState& account_state() const;
  inline ::bgs::protocol::account::v1::AccountState* mutable_account_state();
  inline ::bgs::protocol::account::v1::AccountState* release_account_state();
  inline void set_allocated_account_state(::bgs::protocol::account::v1::AccountState* account_state);

  // optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 2;
  inline bool has_account_tags() const;
  inline void clear_account_tags();
  static const int kAccountTagsFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::AccountFieldTags& account_tags() const;
  inline ::bgs::protocol::account::v1::AccountFieldTags* mutable_account_tags();
  inline ::bgs::protocol::account::v1::AccountFieldTags* release_account_tags();
  inline void set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AccountStateTagged)
 private:
  inline void set_has_account_state();
  inline void clear_has_account_state();
  inline void set_has_account_tags();
  inline void clear_has_account_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountState* account_state_;
  ::bgs::protocol::account::v1::AccountFieldTags* account_tags_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AccountStateTagged* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountState : public ::google::protobuf::Message {
 public:
  GameAccountState();
  virtual ~GameAccountState();

  GameAccountState(const GameAccountState& from);

  inline GameAccountState& operator=(const GameAccountState& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountState& default_instance();

  void Swap(GameAccountState* other);

  // implements Message ----------------------------------------------

  GameAccountState* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountState& from);
  void MergeFrom(const GameAccountState& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.GameLevelInfo game_level_info = 1;
  inline bool has_game_level_info() const;
  inline void clear_game_level_info();
  static const int kGameLevelInfoFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameLevelInfo& game_level_info() const;
  inline ::bgs::protocol::account::v1::GameLevelInfo* mutable_game_level_info();
  inline ::bgs::protocol::account::v1::GameLevelInfo* release_game_level_info();
  inline void set_allocated_game_level_info(::bgs::protocol::account::v1::GameLevelInfo* game_level_info);

  // optional .bgs.protocol.account.v1.GameTimeInfo game_time_info = 2;
  inline bool has_game_time_info() const;
  inline void clear_game_time_info();
  static const int kGameTimeInfoFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameTimeInfo& game_time_info() const;
  inline ::bgs::protocol::account::v1::GameTimeInfo* mutable_game_time_info();
  inline ::bgs::protocol::account::v1::GameTimeInfo* release_game_time_info();
  inline void set_allocated_game_time_info(::bgs::protocol::account::v1::GameTimeInfo* game_time_info);

  // optional .bgs.protocol.account.v1.GameStatus game_status = 3;
  inline bool has_game_status() const;
  inline void clear_game_status();
  static const int kGameStatusFieldNumber = 3;
  inline const ::bgs::protocol::account::v1::GameStatus& game_status() const;
  inline ::bgs::protocol::account::v1::GameStatus* mutable_game_status();
  inline ::bgs::protocol::account::v1::GameStatus* release_game_status();
  inline void set_allocated_game_status(::bgs::protocol::account::v1::GameStatus* game_status);

  // optional .bgs.protocol.account.v1.RAFInfo raf_info = 4;
  inline bool has_raf_info() const;
  inline void clear_raf_info();
  static const int kRafInfoFieldNumber = 4;
  inline const ::bgs::protocol::account::v1::RAFInfo& raf_info() const;
  inline ::bgs::protocol::account::v1::RAFInfo* mutable_raf_info();
  inline ::bgs::protocol::account::v1::RAFInfo* release_raf_info();
  inline void set_allocated_raf_info(::bgs::protocol::account::v1::RAFInfo* raf_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountState)
 private:
  inline void set_has_game_level_info();
  inline void clear_has_game_level_info();
  inline void set_has_game_time_info();
  inline void clear_has_game_time_info();
  inline void set_has_game_status();
  inline void clear_has_game_status();
  inline void set_has_raf_info();
  inline void clear_has_raf_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameLevelInfo* game_level_info_;
  ::bgs::protocol::account::v1::GameTimeInfo* game_time_info_;
  ::bgs::protocol::account::v1::GameStatus* game_status_;
  ::bgs::protocol::account::v1::RAFInfo* raf_info_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountState* default_instance_;
};
// -------------------------------------------------------------------

class GameAccountStateTagged : public ::google::protobuf::Message {
 public:
  GameAccountStateTagged();
  virtual ~GameAccountStateTagged();

  GameAccountStateTagged(const GameAccountStateTagged& from);

  inline GameAccountStateTagged& operator=(const GameAccountStateTagged& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const GameAccountStateTagged& default_instance();

  void Swap(GameAccountStateTagged* other);

  // implements Message ----------------------------------------------

  GameAccountStateTagged* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountStateTagged& from);
  void MergeFrom(const GameAccountStateTagged& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.GameAccountState game_account_state = 1;
  inline bool has_game_account_state() const;
  inline void clear_game_account_state();
  static const int kGameAccountStateFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountState& game_account_state() const;
  inline ::bgs::protocol::account::v1::GameAccountState* mutable_game_account_state();
  inline ::bgs::protocol::account::v1::GameAccountState* release_game_account_state();
  inline void set_allocated_game_account_state(::bgs::protocol::account::v1::GameAccountState* game_account_state);

  // optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 2;
  inline bool has_game_account_tags() const;
  inline void clear_game_account_tags();
  static const int kGameAccountTagsFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameAccountFieldTags& game_account_tags() const;
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* mutable_game_account_tags();
  inline ::bgs::protocol::account::v1::GameAccountFieldTags* release_game_account_tags();
  inline void set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.GameAccountStateTagged)
 private:
  inline void set_has_game_account_state();
  inline void clear_has_game_account_state();
  inline void set_has_game_account_tags();
  inline void clear_has_game_account_tags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountState* game_account_state_;
  ::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static GameAccountStateTagged* default_instance_;
};
// -------------------------------------------------------------------

class AuthorizedData : public ::google::protobuf::Message {
 public:
  AuthorizedData();
  virtual ~AuthorizedData();

  AuthorizedData(const AuthorizedData& from);

  inline AuthorizedData& operator=(const AuthorizedData& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AuthorizedData& default_instance();

  void Swap(AuthorizedData* other);

  // implements Message ----------------------------------------------

  AuthorizedData* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AuthorizedData& from);
  void MergeFrom(const AuthorizedData& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string data = 1;
  inline bool has_data() const;
  inline void clear_data();
  static const int kDataFieldNumber = 1;
  inline const ::std::string& data() const;
  inline void set_data(const ::std::string& value);
  inline void set_data(const char* value);
  inline void set_data(const char* value, size_t size);
  inline ::std::string* mutable_data();
  inline ::std::string* release_data();
  inline void set_allocated_data(::std::string* data);

  // repeated uint32 license = 2;
  inline int license_size() const;
  inline void clear_license();
  static const int kLicenseFieldNumber = 2;
  inline ::google::protobuf::uint32 license(int index) const;
  inline void set_license(int index, ::google::protobuf::uint32 value);
  inline void add_license(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      license() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_license();

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AuthorizedData)
 private:
  inline void set_has_data();
  inline void clear_has_data();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* data_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > license_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AuthorizedData* default_instance_;
};
// -------------------------------------------------------------------

class BenefactorAddress : public ::google::protobuf::Message {
 public:
  BenefactorAddress();
  virtual ~BenefactorAddress();

  BenefactorAddress(const BenefactorAddress& from);

  inline BenefactorAddress& operator=(const BenefactorAddress& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const BenefactorAddress& default_instance();

  void Swap(BenefactorAddress* other);

  // implements Message ----------------------------------------------

  BenefactorAddress* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const BenefactorAddress& from);
  void MergeFrom(const BenefactorAddress& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint32 region = 1;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 1;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // optional string igr_address = 2;
  inline bool has_igr_address() const;
  inline void clear_igr_address();
  static const int kIgrAddressFieldNumber = 2;
  inline const ::std::string& igr_address() const;
  inline void set_igr_address(const ::std::string& value);
  inline void set_igr_address(const char* value);
  inline void set_igr_address(const char* value, size_t size);
  inline ::std::string* mutable_igr_address();
  inline ::std::string* release_igr_address();
  inline void set_allocated_igr_address(::std::string* igr_address);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.BenefactorAddress)
 private:
  inline void set_has_region();
  inline void clear_has_region();
  inline void set_has_igr_address();
  inline void clear_has_igr_address();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* igr_address_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static BenefactorAddress* default_instance_;
};
// -------------------------------------------------------------------

class ExternalBenefactorLookup : public ::google::protobuf::Message {
 public:
  ExternalBenefactorLookup();
  virtual ~ExternalBenefactorLookup();

  ExternalBenefactorLookup(const ExternalBenefactorLookup& from);

  inline ExternalBenefactorLookup& operator=(const ExternalBenefactorLookup& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ExternalBenefactorLookup& default_instance();

  void Swap(ExternalBenefactorLookup* other);

  // implements Message ----------------------------------------------

  ExternalBenefactorLookup* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ExternalBenefactorLookup& from);
  void MergeFrom(const ExternalBenefactorLookup& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 benefactor_id = 1;
  inline bool has_benefactor_id() const;
  inline void clear_benefactor_id();
  static const int kBenefactorIdFieldNumber = 1;
  inline ::google::protobuf::uint32 benefactor_id() const;
  inline void set_benefactor_id(::google::protobuf::uint32 value);

  // optional uint32 region = 2;
  inline bool has_region() const;
  inline void clear_region();
  static const int kRegionFieldNumber = 2;
  inline ::google::protobuf::uint32 region() const;
  inline void set_region(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.ExternalBenefactorLookup)
 private:
  inline void set_has_benefactor_id();
  inline void clear_has_benefactor_id();
  inline void set_has_region();
  inline void clear_has_region();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 benefactor_id_;
  ::google::protobuf::uint32 region_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ExternalBenefactorLookup* default_instance_;
};
// -------------------------------------------------------------------

class AuthBenefactor : public ::google::protobuf::Message {
 public:
  AuthBenefactor();
  virtual ~AuthBenefactor();

  AuthBenefactor(const AuthBenefactor& from);

  inline AuthBenefactor& operator=(const AuthBenefactor& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AuthBenefactor& default_instance();

  void Swap(AuthBenefactor* other);

  // implements Message ----------------------------------------------

  AuthBenefactor* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AuthBenefactor& from);
  void MergeFrom(const AuthBenefactor& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string igr_address = 1;
  inline bool has_igr_address() const;
  inline void clear_igr_address();
  static const int kIgrAddressFieldNumber = 1;
  inline const ::std::string& igr_address() const;
  inline void set_igr_address(const ::std::string& value);
  inline void set_igr_address(const char* value);
  inline void set_igr_address(const char* value, size_t size);
  inline ::std::string* mutable_igr_address();
  inline ::std::string* release_igr_address();
  inline void set_allocated_igr_address(::std::string* igr_address);

  // optional fixed32 benefactor_id = 2;
  inline bool has_benefactor_id() const;
  inline void clear_benefactor_id();
  static const int kBenefactorIdFieldNumber = 2;
  inline ::google::protobuf::uint32 benefactor_id() const;
  inline void set_benefactor_id(::google::protobuf::uint32 value);

  // optional bool active = 3;
  inline bool has_active() const;
  inline void clear_active();
  static const int kActiveFieldNumber = 3;
  inline bool active() const;
  inline void set_active(bool value);

  // optional uint64 last_update_time = 4;
  inline bool has_last_update_time() const;
  inline void clear_last_update_time();
  static const int kLastUpdateTimeFieldNumber = 4;
  inline ::google::protobuf::uint64 last_update_time() const;
  inline void set_last_update_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.AuthBenefactor)
 private:
  inline void set_has_igr_address();
  inline void clear_has_igr_address();
  inline void set_has_benefactor_id();
  inline void clear_has_benefactor_id();
  inline void set_has_active();
  inline void clear_has_active();
  inline void set_has_last_update_time();
  inline void clear_has_last_update_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* igr_address_;
  ::google::protobuf::uint32 benefactor_id_;
  bool active_;
  ::google::protobuf::uint64 last_update_time_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static AuthBenefactor* default_instance_;
};
// -------------------------------------------------------------------

class ApplicationInfo : public ::google::protobuf::Message {
 public:
  ApplicationInfo();
  virtual ~ApplicationInfo();

  ApplicationInfo(const ApplicationInfo& from);

  inline ApplicationInfo& operator=(const ApplicationInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ApplicationInfo& default_instance();

  void Swap(ApplicationInfo* other);

  // implements Message ----------------------------------------------

  ApplicationInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ApplicationInfo& from);
  void MergeFrom(const ApplicationInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 platform_id = 1;
  inline bool has_platform_id() const;
  inline void clear_platform_id();
  static const int kPlatformIdFieldNumber = 1;
  inline ::google::protobuf::uint32 platform_id() const;
  inline void set_platform_id(::google::protobuf::uint32 value);

  // optional fixed32 locale = 2;
  inline bool has_locale() const;
  inline void clear_locale();
  static const int kLocaleFieldNumber = 2;
  inline ::google::protobuf::uint32 locale() const;
  inline void set_locale(::google::protobuf::uint32 value);

  // optional int32 application_version = 3;
  inline bool has_application_version() const;
  inline void clear_application_version();
  static const int kApplicationVersionFieldNumber = 3;
  inline ::google::protobuf::int32 application_version() const;
  inline void set_application_version(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.ApplicationInfo)
 private:
  inline void set_has_platform_id();
  inline void clear_has_platform_id();
  inline void set_has_locale();
  inline void clear_has_locale();
  inline void set_has_application_version();
  inline void clear_has_application_version();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 platform_id_;
  ::google::protobuf::uint32 locale_;
  ::google::protobuf::int32 application_version_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ApplicationInfo* default_instance_;
};
// -------------------------------------------------------------------

class DeductRecord : public ::google::protobuf::Message {
 public:
  DeductRecord();
  virtual ~DeductRecord();

  DeductRecord(const DeductRecord& from);

  inline DeductRecord& operator=(const DeductRecord& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const DeductRecord& default_instance();

  void Swap(DeductRecord* other);

  // implements Message ----------------------------------------------

  DeductRecord* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const DeductRecord& from);
  void MergeFrom(const DeductRecord& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional .bgs.protocol.account.v1.GameAccountHandle benefactor = 2;
  inline bool has_benefactor() const;
  inline void clear_benefactor();
  static const int kBenefactorFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& benefactor() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_benefactor();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_benefactor();
  inline void set_allocated_benefactor(::bgs::protocol::account::v1::GameAccountHandle* benefactor);

  // optional uint64 start_time = 3;
  inline bool has_start_time() const;
  inline void clear_start_time();
  static const int kStartTimeFieldNumber = 3;
  inline ::google::protobuf::uint64 start_time() const;
  inline void set_start_time(::google::protobuf::uint64 value);

  // optional uint64 end_time = 4;
  inline bool has_end_time() const;
  inline void clear_end_time();
  static const int kEndTimeFieldNumber = 4;
  inline ::google::protobuf::uint64 end_time() const;
  inline void set_end_time(::google::protobuf::uint64 value);

  // optional string client_address = 5;
  inline bool has_client_address() const;
  inline void clear_client_address();
  static const int kClientAddressFieldNumber = 5;
  inline const ::std::string& client_address() const;
  inline void set_client_address(const ::std::string& value);
  inline void set_client_address(const char* value);
  inline void set_client_address(const char* value, size_t size);
  inline ::std::string* mutable_client_address();
  inline ::std::string* release_client_address();
  inline void set_allocated_client_address(::std::string* client_address);

  // optional .bgs.protocol.account.v1.ApplicationInfo application_info = 6;
  inline bool has_application_info() const;
  inline void clear_application_info();
  static const int kApplicationInfoFieldNumber = 6;
  inline const ::bgs::protocol::account::v1::ApplicationInfo& application_info() const;
  inline ::bgs::protocol::account::v1::ApplicationInfo* mutable_application_info();
  inline ::bgs::protocol::account::v1::ApplicationInfo* release_application_info();
  inline void set_allocated_application_info(::bgs::protocol::account::v1::ApplicationInfo* application_info);

  // optional string session_owner = 7;
  inline bool has_session_owner() const;
  inline void clear_session_owner();
  static const int kSessionOwnerFieldNumber = 7;
  inline const ::std::string& session_owner() const;
  inline void set_session_owner(const ::std::string& value);
  inline void set_session_owner(const char* value);
  inline void set_session_owner(const char* value, size_t size);
  inline ::std::string* mutable_session_owner();
  inline ::std::string* release_session_owner();
  inline void set_allocated_session_owner(::std::string* session_owner);

  // optional bool free_session = 8;
  inline bool has_free_session() const;
  inline void clear_free_session();
  static const int kFreeSessionFieldNumber = 8;
  inline bool free_session() const;
  inline void set_free_session(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.DeductRecord)
 private:
  inline void set_has_game_account();
  inline void clear_has_game_account();
  inline void set_has_benefactor();
  inline void clear_has_benefactor();
  inline void set_has_start_time();
  inline void clear_has_start_time();
  inline void set_has_end_time();
  inline void clear_has_end_time();
  inline void set_has_client_address();
  inline void clear_has_client_address();
  inline void set_has_application_info();
  inline void clear_has_application_info();
  inline void set_has_session_owner();
  inline void clear_has_session_owner();
  inline void set_has_free_session();
  inline void clear_has_free_session();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
  ::bgs::protocol::account::v1::GameAccountHandle* benefactor_;
  ::google::protobuf::uint64 start_time_;
  ::google::protobuf::uint64 end_time_;
  ::std::string* client_address_;
  ::bgs::protocol::account::v1::ApplicationInfo* application_info_;
  ::std::string* session_owner_;
  bool free_session_;
  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static DeductRecord* default_instance_;
};
// -------------------------------------------------------------------

class IgrId : public ::google::protobuf::Message {
 public:
  IgrId();
  virtual ~IgrId();

  IgrId(const IgrId& from);

  inline IgrId& operator=(const IgrId& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const IgrId& default_instance();

  enum TypeCase {
    kGameAccount = 1,
    kExternalId = 2,
    TYPE_NOT_SET = 0,
  };

  void Swap(IgrId* other);

  // implements Message ----------------------------------------------

  IgrId* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const IgrId& from);
  void MergeFrom(const IgrId& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
  inline bool has_game_account() const;
  inline void clear_game_account();
  static const int kGameAccountFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::GameAccountHandle& game_account() const;
  inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_game_account();
  inline ::bgs::protocol::account::v1::GameAccountHandle* release_game_account();
  inline void set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account);

  // optional fixed32 external_id = 2;
  inline bool has_external_id() const;
  inline void clear_external_id();
  static const int kExternalIdFieldNumber = 2;
  inline ::google::protobuf::uint32 external_id() const;
  inline void set_external_id(::google::protobuf::uint32 value);

  inline TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:bgs.protocol.account.v1.IgrId)
 private:
  inline void set_has_game_account();
  inline void set_has_external_id();

  inline bool has_type();
  void clear_type();
  inline void clear_has_type();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  union TypeUnion {
    ::bgs::protocol::account::v1::GameAccountHandle* game_account_;
    ::google::protobuf::uint32 external_id_;
  } type_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend void protobuf_AddDesc_account_5ftypes_2eproto();
  friend void protobuf_AssignDesc_account_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_account_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static IgrId* default_instance_;
};
// ===================================================================


// ===================================================================


// ===================================================================

// AccountId

// required fixed32 id = 1;
inline bool AccountId::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountId::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountId::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountId::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountId::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountId.id)
  return id_;
}
inline void AccountId::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountId.id)
}

// -------------------------------------------------------------------

// AccountLicense

// required uint32 id = 1;
inline bool AccountLicense::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountLicense::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountLicense::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountLicense::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountLicense::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLicense.id)
  return id_;
}
inline void AccountLicense::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLicense.id)
}

// optional uint64 expires = 2;
inline bool AccountLicense::has_expires() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountLicense::set_has_expires() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountLicense::clear_has_expires() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountLicense::clear_expires() {
  expires_ = GOOGLE_ULONGLONG(0);
  clear_has_expires();
}
inline ::google::protobuf::uint64 AccountLicense::expires() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLicense.expires)
  return expires_;
}
inline void AccountLicense::set_expires(::google::protobuf::uint64 value) {
  set_has_expires();
  expires_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLicense.expires)
}

// -------------------------------------------------------------------

// AccountCredential

// required uint32 id = 1;
inline bool AccountCredential::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountCredential::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountCredential::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountCredential::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountCredential::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountCredential.id)
  return id_;
}
inline void AccountCredential::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountCredential.id)
}

// optional bytes data = 2;
inline bool AccountCredential::has_data() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountCredential::set_has_data() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountCredential::clear_has_data() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountCredential::clear_data() {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_->clear();
  }
  clear_has_data();
}
inline const ::std::string& AccountCredential::data() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountCredential.data)
  return *data_;
}
inline void AccountCredential::set_data(const ::std::string& value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountCredential.data)
}
inline void AccountCredential::set_data(const char* value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountCredential.data)
}
inline void AccountCredential::set_data(const void* value, size_t size) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountCredential.data)
}
inline ::std::string* AccountCredential::mutable_data() {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountCredential.data)
  return data_;
}
inline ::std::string* AccountCredential::release_data() {
  clear_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = data_;
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountCredential::set_allocated_data(::std::string* data) {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete data_;
  }
  if (data) {
    set_has_data();
    data_ = data;
  } else {
    clear_has_data();
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountCredential.data)
}

// -------------------------------------------------------------------

// AccountBlob

// required fixed32 id = 2;
inline bool AccountBlob::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountBlob::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountBlob::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountBlob::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountBlob::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.id)
  return id_;
}
inline void AccountBlob::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.id)
}

// required uint32 region = 3;
inline bool AccountBlob::has_region() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountBlob::set_has_region() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountBlob::clear_has_region() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountBlob::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 AccountBlob::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.region)
  return region_;
}
inline void AccountBlob::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.region)
}

// repeated string email = 4;
inline int AccountBlob::email_size() const {
  return email_.size();
}
inline void AccountBlob::clear_email() {
  email_.Clear();
}
inline const ::std::string& AccountBlob::email(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.email)
  return email_.Get(index);
}
inline ::std::string* AccountBlob::mutable_email(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.email)
  return email_.Mutable(index);
}
inline void AccountBlob::set_email(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.email)
  email_.Mutable(index)->assign(value);
}
inline void AccountBlob::set_email(int index, const char* value) {
  email_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountBlob.email)
}
inline void AccountBlob::set_email(int index, const char* value, size_t size) {
  email_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountBlob.email)
}
inline ::std::string* AccountBlob::add_email() {
  return email_.Add();
}
inline void AccountBlob::add_email(const ::std::string& value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountBlob.email)
}
inline void AccountBlob::add_email(const char* value) {
  email_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:bgs.protocol.account.v1.AccountBlob.email)
}
inline void AccountBlob::add_email(const char* value, size_t size) {
  email_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:bgs.protocol.account.v1.AccountBlob.email)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
AccountBlob::email() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountBlob.email)
  return email_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
AccountBlob::mutable_email() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountBlob.email)
  return &email_;
}

// required uint64 flags = 5;
inline bool AccountBlob::has_flags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountBlob::set_has_flags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountBlob::clear_has_flags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountBlob::clear_flags() {
  flags_ = GOOGLE_ULONGLONG(0);
  clear_has_flags();
}
inline ::google::protobuf::uint64 AccountBlob::flags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.flags)
  return flags_;
}
inline void AccountBlob::set_flags(::google::protobuf::uint64 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.flags)
}

// optional uint64 secure_release = 6;
inline bool AccountBlob::has_secure_release() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void AccountBlob::set_has_secure_release() {
  _has_bits_[0] |= 0x00000010u;
}
inline void AccountBlob::clear_has_secure_release() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void AccountBlob::clear_secure_release() {
  secure_release_ = GOOGLE_ULONGLONG(0);
  clear_has_secure_release();
}
inline ::google::protobuf::uint64 AccountBlob::secure_release() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.secure_release)
  return secure_release_;
}
inline void AccountBlob::set_secure_release(::google::protobuf::uint64 value) {
  set_has_secure_release();
  secure_release_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.secure_release)
}

// optional uint64 whitelist_start = 7;
inline bool AccountBlob::has_whitelist_start() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void AccountBlob::set_has_whitelist_start() {
  _has_bits_[0] |= 0x00000020u;
}
inline void AccountBlob::clear_has_whitelist_start() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void AccountBlob::clear_whitelist_start() {
  whitelist_start_ = GOOGLE_ULONGLONG(0);
  clear_has_whitelist_start();
}
inline ::google::protobuf::uint64 AccountBlob::whitelist_start() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.whitelist_start)
  return whitelist_start_;
}
inline void AccountBlob::set_whitelist_start(::google::protobuf::uint64 value) {
  set_has_whitelist_start();
  whitelist_start_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.whitelist_start)
}

// optional uint64 whitelist_end = 8;
inline bool AccountBlob::has_whitelist_end() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void AccountBlob::set_has_whitelist_end() {
  _has_bits_[0] |= 0x00000040u;
}
inline void AccountBlob::clear_has_whitelist_end() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void AccountBlob::clear_whitelist_end() {
  whitelist_end_ = GOOGLE_ULONGLONG(0);
  clear_has_whitelist_end();
}
inline ::google::protobuf::uint64 AccountBlob::whitelist_end() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.whitelist_end)
  return whitelist_end_;
}
inline void AccountBlob::set_whitelist_end(::google::protobuf::uint64 value) {
  set_has_whitelist_end();
  whitelist_end_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.whitelist_end)
}

// required string full_name = 10;
inline bool AccountBlob::has_full_name() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void AccountBlob::set_has_full_name() {
  _has_bits_[0] |= 0x00000080u;
}
inline void AccountBlob::clear_has_full_name() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void AccountBlob::clear_full_name() {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_->clear();
  }
  clear_has_full_name();
}
inline const ::std::string& AccountBlob::full_name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.full_name)
  return *full_name_;
}
inline void AccountBlob::set_full_name(const ::std::string& value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.full_name)
}
inline void AccountBlob::set_full_name(const char* value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountBlob.full_name)
}
inline void AccountBlob::set_full_name(const char* value, size_t size) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountBlob.full_name)
}
inline ::std::string* AccountBlob::mutable_full_name() {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.full_name)
  return full_name_;
}
inline ::std::string* AccountBlob::release_full_name() {
  clear_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = full_name_;
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountBlob::set_allocated_full_name(::std::string* full_name) {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete full_name_;
  }
  if (full_name) {
    set_has_full_name();
    full_name_ = full_name;
  } else {
    clear_has_full_name();
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountBlob.full_name)
}

// repeated .bgs.protocol.account.v1.AccountLicense licenses = 20;
inline int AccountBlob::licenses_size() const {
  return licenses_.size();
}
inline void AccountBlob::clear_licenses() {
  licenses_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountLicense& AccountBlob::licenses(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.licenses)
  return licenses_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* AccountBlob::mutable_licenses(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.licenses)
  return licenses_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* AccountBlob::add_licenses() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountBlob.licenses)
  return licenses_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
AccountBlob::licenses() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountBlob.licenses)
  return licenses_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
AccountBlob::mutable_licenses() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountBlob.licenses)
  return &licenses_;
}

// repeated .bgs.protocol.account.v1.AccountCredential credentials = 21;
inline int AccountBlob::credentials_size() const {
  return credentials_.size();
}
inline void AccountBlob::clear_credentials() {
  credentials_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountCredential& AccountBlob::credentials(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.credentials)
  return credentials_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* AccountBlob::mutable_credentials(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.credentials)
  return credentials_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountCredential* AccountBlob::add_credentials() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountBlob.credentials)
  return credentials_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >&
AccountBlob::credentials() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountBlob.credentials)
  return credentials_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountCredential >*
AccountBlob::mutable_credentials() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountBlob.credentials)
  return &credentials_;
}

// repeated .bgs.protocol.account.v1.GameAccountLink account_links = 22;
inline int AccountBlob::account_links_size() const {
  return account_links_.size();
}
inline void AccountBlob::clear_account_links() {
  account_links_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountLink& AccountBlob::account_links(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.account_links)
  return account_links_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountLink* AccountBlob::mutable_account_links(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.account_links)
  return account_links_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountLink* AccountBlob::add_account_links() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountBlob.account_links)
  return account_links_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >&
AccountBlob::account_links() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountBlob.account_links)
  return account_links_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountLink >*
AccountBlob::mutable_account_links() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountBlob.account_links)
  return &account_links_;
}

// optional string battle_tag = 23;
inline bool AccountBlob::has_battle_tag() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void AccountBlob::set_has_battle_tag() {
  _has_bits_[0] |= 0x00000800u;
}
inline void AccountBlob::clear_has_battle_tag() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void AccountBlob::clear_battle_tag() {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_->clear();
  }
  clear_has_battle_tag();
}
inline const ::std::string& AccountBlob::battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.battle_tag)
  return *battle_tag_;
}
inline void AccountBlob::set_battle_tag(const ::std::string& value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.battle_tag)
}
inline void AccountBlob::set_battle_tag(const char* value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountBlob.battle_tag)
}
inline void AccountBlob::set_battle_tag(const char* value, size_t size) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountBlob.battle_tag)
}
inline ::std::string* AccountBlob::mutable_battle_tag() {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.battle_tag)
  return battle_tag_;
}
inline ::std::string* AccountBlob::release_battle_tag() {
  clear_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = battle_tag_;
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountBlob::set_allocated_battle_tag(::std::string* battle_tag) {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete battle_tag_;
  }
  if (battle_tag) {
    set_has_battle_tag();
    battle_tag_ = battle_tag;
  } else {
    clear_has_battle_tag();
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountBlob.battle_tag)
}

// optional fixed32 default_currency = 25;
inline bool AccountBlob::has_default_currency() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void AccountBlob::set_has_default_currency() {
  _has_bits_[0] |= 0x00001000u;
}
inline void AccountBlob::clear_has_default_currency() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void AccountBlob::clear_default_currency() {
  default_currency_ = 0u;
  clear_has_default_currency();
}
inline ::google::protobuf::uint32 AccountBlob::default_currency() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.default_currency)
  return default_currency_;
}
inline void AccountBlob::set_default_currency(::google::protobuf::uint32 value) {
  set_has_default_currency();
  default_currency_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.default_currency)
}

// optional uint32 legal_region = 26;
inline bool AccountBlob::has_legal_region() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void AccountBlob::set_has_legal_region() {
  _has_bits_[0] |= 0x00002000u;
}
inline void AccountBlob::clear_has_legal_region() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void AccountBlob::clear_legal_region() {
  legal_region_ = 0u;
  clear_has_legal_region();
}
inline ::google::protobuf::uint32 AccountBlob::legal_region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.legal_region)
  return legal_region_;
}
inline void AccountBlob::set_legal_region(::google::protobuf::uint32 value) {
  set_has_legal_region();
  legal_region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.legal_region)
}

// optional fixed32 legal_locale = 27;
inline bool AccountBlob::has_legal_locale() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void AccountBlob::set_has_legal_locale() {
  _has_bits_[0] |= 0x00004000u;
}
inline void AccountBlob::clear_has_legal_locale() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void AccountBlob::clear_legal_locale() {
  legal_locale_ = 0u;
  clear_has_legal_locale();
}
inline ::google::protobuf::uint32 AccountBlob::legal_locale() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.legal_locale)
  return legal_locale_;
}
inline void AccountBlob::set_legal_locale(::google::protobuf::uint32 value) {
  set_has_legal_locale();
  legal_locale_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.legal_locale)
}

// required uint64 cache_expiration = 30;
inline bool AccountBlob::has_cache_expiration() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void AccountBlob::set_has_cache_expiration() {
  _has_bits_[0] |= 0x00008000u;
}
inline void AccountBlob::clear_has_cache_expiration() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void AccountBlob::clear_cache_expiration() {
  cache_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_cache_expiration();
}
inline ::google::protobuf::uint64 AccountBlob::cache_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.cache_expiration)
  return cache_expiration_;
}
inline void AccountBlob::set_cache_expiration(::google::protobuf::uint64 value) {
  set_has_cache_expiration();
  cache_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.cache_expiration)
}

// optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 31;
inline bool AccountBlob::has_parental_control_info() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void AccountBlob::set_has_parental_control_info() {
  _has_bits_[0] |= 0x00010000u;
}
inline void AccountBlob::clear_has_parental_control_info() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void AccountBlob::clear_parental_control_info() {
  if (parental_control_info_ != NULL) parental_control_info_->::bgs::protocol::account::v1::ParentalControlInfo::Clear();
  clear_has_parental_control_info();
}
inline const ::bgs::protocol::account::v1::ParentalControlInfo& AccountBlob::parental_control_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.parental_control_info)
  return parental_control_info_ != NULL ? *parental_control_info_ : *default_instance_->parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* AccountBlob::mutable_parental_control_info() {
  set_has_parental_control_info();
  if (parental_control_info_ == NULL) parental_control_info_ = new ::bgs::protocol::account::v1::ParentalControlInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.parental_control_info)
  return parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* AccountBlob::release_parental_control_info() {
  clear_has_parental_control_info();
  ::bgs::protocol::account::v1::ParentalControlInfo* temp = parental_control_info_;
  parental_control_info_ = NULL;
  return temp;
}
inline void AccountBlob::set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info) {
  delete parental_control_info_;
  parental_control_info_ = parental_control_info;
  if (parental_control_info) {
    set_has_parental_control_info();
  } else {
    clear_has_parental_control_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountBlob.parental_control_info)
}

// optional string country = 32;
inline bool AccountBlob::has_country() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void AccountBlob::set_has_country() {
  _has_bits_[0] |= 0x00020000u;
}
inline void AccountBlob::clear_has_country() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void AccountBlob::clear_country() {
  if (country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_->clear();
  }
  clear_has_country();
}
inline const ::std::string& AccountBlob::country() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.country)
  return *country_;
}
inline void AccountBlob::set_country(const ::std::string& value) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.country)
}
inline void AccountBlob::set_country(const char* value) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountBlob.country)
}
inline void AccountBlob::set_country(const char* value, size_t size) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountBlob.country)
}
inline ::std::string* AccountBlob::mutable_country() {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.country)
  return country_;
}
inline ::std::string* AccountBlob::release_country() {
  clear_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = country_;
    country_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountBlob::set_allocated_country(::std::string* country) {
  if (country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete country_;
  }
  if (country) {
    set_has_country();
    country_ = country;
  } else {
    clear_has_country();
    country_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountBlob.country)
}

// optional uint32 preferred_region = 33;
inline bool AccountBlob::has_preferred_region() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void AccountBlob::set_has_preferred_region() {
  _has_bits_[0] |= 0x00040000u;
}
inline void AccountBlob::clear_has_preferred_region() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void AccountBlob::clear_preferred_region() {
  preferred_region_ = 0u;
  clear_has_preferred_region();
}
inline ::google::protobuf::uint32 AccountBlob::preferred_region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.preferred_region)
  return preferred_region_;
}
inline void AccountBlob::set_preferred_region(::google::protobuf::uint32 value) {
  set_has_preferred_region();
  preferred_region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.preferred_region)
}

// optional .bgs.protocol.account.v1.IdentityVerificationStatus identity_check_status = 34;
inline bool AccountBlob::has_identity_check_status() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void AccountBlob::set_has_identity_check_status() {
  _has_bits_[0] |= 0x00080000u;
}
inline void AccountBlob::clear_has_identity_check_status() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void AccountBlob::clear_identity_check_status() {
  identity_check_status_ = 0;
  clear_has_identity_check_status();
}
inline ::bgs::protocol::account::v1::IdentityVerificationStatus AccountBlob::identity_check_status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.identity_check_status)
  return static_cast< ::bgs::protocol::account::v1::IdentityVerificationStatus >(identity_check_status_);
}
inline void AccountBlob::set_identity_check_status(::bgs::protocol::account::v1::IdentityVerificationStatus value) {
  assert(::bgs::protocol::account::v1::IdentityVerificationStatus_IsValid(value));
  set_has_identity_check_status();
  identity_check_status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.identity_check_status)
}

// optional string cais_id = 35;
inline bool AccountBlob::has_cais_id() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void AccountBlob::set_has_cais_id() {
  _has_bits_[0] |= 0x00100000u;
}
inline void AccountBlob::clear_has_cais_id() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void AccountBlob::clear_cais_id() {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_->clear();
  }
  clear_has_cais_id();
}
inline const ::std::string& AccountBlob::cais_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlob.cais_id)
  return *cais_id_;
}
inline void AccountBlob::set_cais_id(const ::std::string& value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountBlob.cais_id)
}
inline void AccountBlob::set_cais_id(const char* value) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountBlob.cais_id)
}
inline void AccountBlob::set_cais_id(const char* value, size_t size) {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  cais_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountBlob.cais_id)
}
inline ::std::string* AccountBlob::mutable_cais_id() {
  set_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    cais_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlob.cais_id)
  return cais_id_;
}
inline ::std::string* AccountBlob::release_cais_id() {
  clear_has_cais_id();
  if (cais_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = cais_id_;
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountBlob::set_allocated_cais_id(::std::string* cais_id) {
  if (cais_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete cais_id_;
  }
  if (cais_id) {
    set_has_cais_id();
    cais_id_ = cais_id;
  } else {
    clear_has_cais_id();
    cais_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountBlob.cais_id)
}

// -------------------------------------------------------------------

// AccountBlobList

// repeated .bgs.protocol.account.v1.AccountBlob blob = 1;
inline int AccountBlobList::blob_size() const {
  return blob_.size();
}
inline void AccountBlobList::clear_blob() {
  blob_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountBlob& AccountBlobList::blob(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountBlobList.blob)
  return blob_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountBlob* AccountBlobList::mutable_blob(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountBlobList.blob)
  return blob_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountBlob* AccountBlobList::add_blob() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountBlobList.blob)
  return blob_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountBlob >&
AccountBlobList::blob() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountBlobList.blob)
  return blob_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountBlob >*
AccountBlobList::mutable_blob() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountBlobList.blob)
  return &blob_;
}

// -------------------------------------------------------------------

// GameAccountHandle

// required fixed32 id = 1;
inline bool GameAccountHandle::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountHandle::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountHandle::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountHandle::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 GameAccountHandle::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountHandle.id)
  return id_;
}
inline void GameAccountHandle::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountHandle.id)
}

// required fixed32 program = 2;
inline bool GameAccountHandle::has_program() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountHandle::set_has_program() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountHandle::clear_has_program() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountHandle::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 GameAccountHandle::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountHandle.program)
  return program_;
}
inline void GameAccountHandle::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountHandle.program)
}

// required uint32 region = 3;
inline bool GameAccountHandle::has_region() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountHandle::set_has_region() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountHandle::clear_has_region() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountHandle::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 GameAccountHandle::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountHandle.region)
  return region_;
}
inline void GameAccountHandle::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountHandle.region)
}

// -------------------------------------------------------------------

// GameAccountLink

// required .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool GameAccountLink::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountLink::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountLink::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountLink::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GameAccountLink::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountLink.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountLink::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountLink.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountLink::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void GameAccountLink::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountLink.game_account)
}

// required string name = 2;
inline bool GameAccountLink::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountLink::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountLink::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountLink::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& GameAccountLink::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountLink.name)
  return *name_;
}
inline void GameAccountLink::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountLink.name)
}
inline void GameAccountLink::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameAccountLink.name)
}
inline void GameAccountLink::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameAccountLink.name)
}
inline ::std::string* GameAccountLink::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountLink.name)
  return name_;
}
inline ::std::string* GameAccountLink::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameAccountLink::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountLink.name)
}

// -------------------------------------------------------------------

// GameAccountBlob

// required .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool GameAccountBlob::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountBlob::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountBlob::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountBlob::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GameAccountBlob::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountBlob::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountBlob.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountBlob::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void GameAccountBlob::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountBlob.game_account)
}

// optional string name = 2 [default = ""];
inline bool GameAccountBlob::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountBlob::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountBlob::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountBlob::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& GameAccountBlob::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.name)
  return *name_;
}
inline void GameAccountBlob::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.name)
}
inline void GameAccountBlob::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameAccountBlob.name)
}
inline void GameAccountBlob::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameAccountBlob.name)
}
inline ::std::string* GameAccountBlob::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountBlob.name)
  return name_;
}
inline ::std::string* GameAccountBlob::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameAccountBlob::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountBlob.name)
}

// optional uint32 realm_permissions = 3 [default = 0];
inline bool GameAccountBlob::has_realm_permissions() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountBlob::set_has_realm_permissions() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountBlob::clear_has_realm_permissions() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountBlob::clear_realm_permissions() {
  realm_permissions_ = 0u;
  clear_has_realm_permissions();
}
inline ::google::protobuf::uint32 GameAccountBlob::realm_permissions() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.realm_permissions)
  return realm_permissions_;
}
inline void GameAccountBlob::set_realm_permissions(::google::protobuf::uint32 value) {
  set_has_realm_permissions();
  realm_permissions_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.realm_permissions)
}

// required uint32 status = 4;
inline bool GameAccountBlob::has_status() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameAccountBlob::set_has_status() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameAccountBlob::clear_has_status() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameAccountBlob::clear_status() {
  status_ = 0u;
  clear_has_status();
}
inline ::google::protobuf::uint32 GameAccountBlob::status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.status)
  return status_;
}
inline void GameAccountBlob::set_status(::google::protobuf::uint32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.status)
}

// optional uint64 flags = 5 [default = 0];
inline bool GameAccountBlob::has_flags() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GameAccountBlob::set_has_flags() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GameAccountBlob::clear_has_flags() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GameAccountBlob::clear_flags() {
  flags_ = GOOGLE_ULONGLONG(0);
  clear_has_flags();
}
inline ::google::protobuf::uint64 GameAccountBlob::flags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.flags)
  return flags_;
}
inline void GameAccountBlob::set_flags(::google::protobuf::uint64 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.flags)
}

// optional uint32 billing_flags = 6 [default = 0];
inline bool GameAccountBlob::has_billing_flags() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GameAccountBlob::set_has_billing_flags() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GameAccountBlob::clear_has_billing_flags() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GameAccountBlob::clear_billing_flags() {
  billing_flags_ = 0u;
  clear_has_billing_flags();
}
inline ::google::protobuf::uint32 GameAccountBlob::billing_flags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.billing_flags)
  return billing_flags_;
}
inline void GameAccountBlob::set_billing_flags(::google::protobuf::uint32 value) {
  set_has_billing_flags();
  billing_flags_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.billing_flags)
}

// required uint64 cache_expiration = 7;
inline bool GameAccountBlob::has_cache_expiration() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void GameAccountBlob::set_has_cache_expiration() {
  _has_bits_[0] |= 0x00000040u;
}
inline void GameAccountBlob::clear_has_cache_expiration() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void GameAccountBlob::clear_cache_expiration() {
  cache_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_cache_expiration();
}
inline ::google::protobuf::uint64 GameAccountBlob::cache_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.cache_expiration)
  return cache_expiration_;
}
inline void GameAccountBlob::set_cache_expiration(::google::protobuf::uint64 value) {
  set_has_cache_expiration();
  cache_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.cache_expiration)
}

// optional uint64 subscription_expiration = 10;
inline bool GameAccountBlob::has_subscription_expiration() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void GameAccountBlob::set_has_subscription_expiration() {
  _has_bits_[0] |= 0x00000080u;
}
inline void GameAccountBlob::clear_has_subscription_expiration() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void GameAccountBlob::clear_subscription_expiration() {
  subscription_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_subscription_expiration();
}
inline ::google::protobuf::uint64 GameAccountBlob::subscription_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.subscription_expiration)
  return subscription_expiration_;
}
inline void GameAccountBlob::set_subscription_expiration(::google::protobuf::uint64 value) {
  set_has_subscription_expiration();
  subscription_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.subscription_expiration)
}

// optional uint32 units_remaining = 11;
inline bool GameAccountBlob::has_units_remaining() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void GameAccountBlob::set_has_units_remaining() {
  _has_bits_[0] |= 0x00000100u;
}
inline void GameAccountBlob::clear_has_units_remaining() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void GameAccountBlob::clear_units_remaining() {
  units_remaining_ = 0u;
  clear_has_units_remaining();
}
inline ::google::protobuf::uint32 GameAccountBlob::units_remaining() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.units_remaining)
  return units_remaining_;
}
inline void GameAccountBlob::set_units_remaining(::google::protobuf::uint32 value) {
  set_has_units_remaining();
  units_remaining_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.units_remaining)
}

// optional uint64 status_expiration = 12;
inline bool GameAccountBlob::has_status_expiration() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void GameAccountBlob::set_has_status_expiration() {
  _has_bits_[0] |= 0x00000200u;
}
inline void GameAccountBlob::clear_has_status_expiration() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void GameAccountBlob::clear_status_expiration() {
  status_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_status_expiration();
}
inline ::google::protobuf::uint64 GameAccountBlob::status_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.status_expiration)
  return status_expiration_;
}
inline void GameAccountBlob::set_status_expiration(::google::protobuf::uint64 value) {
  set_has_status_expiration();
  status_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.status_expiration)
}

// optional uint32 box_level = 13;
inline bool GameAccountBlob::has_box_level() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void GameAccountBlob::set_has_box_level() {
  _has_bits_[0] |= 0x00000400u;
}
inline void GameAccountBlob::clear_has_box_level() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void GameAccountBlob::clear_box_level() {
  box_level_ = 0u;
  clear_has_box_level();
}
inline ::google::protobuf::uint32 GameAccountBlob::box_level() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.box_level)
  return box_level_;
}
inline void GameAccountBlob::set_box_level(::google::protobuf::uint32 value) {
  set_has_box_level();
  box_level_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.box_level)
}

// optional uint64 box_level_expiration = 14;
inline bool GameAccountBlob::has_box_level_expiration() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void GameAccountBlob::set_has_box_level_expiration() {
  _has_bits_[0] |= 0x00000800u;
}
inline void GameAccountBlob::clear_has_box_level_expiration() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void GameAccountBlob::clear_box_level_expiration() {
  box_level_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_box_level_expiration();
}
inline ::google::protobuf::uint64 GameAccountBlob::box_level_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.box_level_expiration)
  return box_level_expiration_;
}
inline void GameAccountBlob::set_box_level_expiration(::google::protobuf::uint64 value) {
  set_has_box_level_expiration();
  box_level_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.box_level_expiration)
}

// repeated .bgs.protocol.account.v1.AccountLicense licenses = 20;
inline int GameAccountBlob::licenses_size() const {
  return licenses_.size();
}
inline void GameAccountBlob::clear_licenses() {
  licenses_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountLicense& GameAccountBlob::licenses(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.licenses)
  return licenses_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GameAccountBlob::mutable_licenses(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountBlob.licenses)
  return licenses_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GameAccountBlob::add_licenses() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GameAccountBlob.licenses)
  return licenses_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
GameAccountBlob::licenses() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GameAccountBlob.licenses)
  return licenses_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
GameAccountBlob::mutable_licenses() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GameAccountBlob.licenses)
  return &licenses_;
}

// optional fixed32 raf_account = 21;
inline bool GameAccountBlob::has_raf_account() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void GameAccountBlob::set_has_raf_account() {
  _has_bits_[0] |= 0x00002000u;
}
inline void GameAccountBlob::clear_has_raf_account() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void GameAccountBlob::clear_raf_account() {
  raf_account_ = 0u;
  clear_has_raf_account();
}
inline ::google::protobuf::uint32 GameAccountBlob::raf_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.raf_account)
  return raf_account_;
}
inline void GameAccountBlob::set_raf_account(::google::protobuf::uint32 value) {
  set_has_raf_account();
  raf_account_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.raf_account)
}

// optional bytes raf_info = 22;
inline bool GameAccountBlob::has_raf_info() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void GameAccountBlob::set_has_raf_info() {
  _has_bits_[0] |= 0x00004000u;
}
inline void GameAccountBlob::clear_has_raf_info() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void GameAccountBlob::clear_raf_info() {
  if (raf_info_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_->clear();
  }
  clear_has_raf_info();
}
inline const ::std::string& GameAccountBlob::raf_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.raf_info)
  return *raf_info_;
}
inline void GameAccountBlob::set_raf_info(const ::std::string& value) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.raf_info)
}
inline void GameAccountBlob::set_raf_info(const char* value) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameAccountBlob.raf_info)
}
inline void GameAccountBlob::set_raf_info(const void* value, size_t size) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameAccountBlob.raf_info)
}
inline ::std::string* GameAccountBlob::mutable_raf_info() {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountBlob.raf_info)
  return raf_info_;
}
inline ::std::string* GameAccountBlob::release_raf_info() {
  clear_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = raf_info_;
    raf_info_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameAccountBlob::set_allocated_raf_info(::std::string* raf_info) {
  if (raf_info_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete raf_info_;
  }
  if (raf_info) {
    set_has_raf_info();
    raf_info_ = raf_info;
  } else {
    clear_has_raf_info();
    raf_info_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountBlob.raf_info)
}

// optional uint64 raf_expiration = 23;
inline bool GameAccountBlob::has_raf_expiration() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void GameAccountBlob::set_has_raf_expiration() {
  _has_bits_[0] |= 0x00008000u;
}
inline void GameAccountBlob::clear_has_raf_expiration() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void GameAccountBlob::clear_raf_expiration() {
  raf_expiration_ = GOOGLE_ULONGLONG(0);
  clear_has_raf_expiration();
}
inline ::google::protobuf::uint64 GameAccountBlob::raf_expiration() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlob.raf_expiration)
  return raf_expiration_;
}
inline void GameAccountBlob::set_raf_expiration(::google::protobuf::uint64 value) {
  set_has_raf_expiration();
  raf_expiration_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountBlob.raf_expiration)
}

// -------------------------------------------------------------------

// GameAccountBlobList

// repeated .bgs.protocol.account.v1.GameAccountBlob blob = 1;
inline int GameAccountBlobList::blob_size() const {
  return blob_.size();
}
inline void GameAccountBlobList::clear_blob() {
  blob_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountBlob& GameAccountBlobList::blob(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountBlobList.blob)
  return blob_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountBlob* GameAccountBlobList::mutable_blob(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountBlobList.blob)
  return blob_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountBlob* GameAccountBlobList::add_blob() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GameAccountBlobList.blob)
  return blob_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountBlob >&
GameAccountBlobList::blob() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GameAccountBlobList.blob)
  return blob_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountBlob >*
GameAccountBlobList::mutable_blob() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GameAccountBlobList.blob)
  return &blob_;
}

// -------------------------------------------------------------------

// AccountReference

// optional fixed32 id = 1;
inline bool AccountReference::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountReference::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountReference::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountReference::clear_id() {
  id_ = 0u;
  clear_has_id();
}
inline ::google::protobuf::uint32 AccountReference::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountReference.id)
  return id_;
}
inline void AccountReference::set_id(::google::protobuf::uint32 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountReference.id)
}

// optional string email = 2;
inline bool AccountReference::has_email() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountReference::set_has_email() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountReference::clear_has_email() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountReference::clear_email() {
  if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_->clear();
  }
  clear_has_email();
}
inline const ::std::string& AccountReference::email() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountReference.email)
  return *email_;
}
inline void AccountReference::set_email(const ::std::string& value) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountReference.email)
}
inline void AccountReference::set_email(const char* value) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountReference.email)
}
inline void AccountReference::set_email(const char* value, size_t size) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountReference.email)
}
inline ::std::string* AccountReference::mutable_email() {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountReference.email)
  return email_;
}
inline ::std::string* AccountReference::release_email() {
  clear_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = email_;
    email_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountReference::set_allocated_email(::std::string* email) {
  if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete email_;
  }
  if (email) {
    set_has_email();
    email_ = email;
  } else {
    clear_has_email();
    email_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountReference.email)
}

// optional .bgs.protocol.account.v1.GameAccountHandle handle = 3;
inline bool AccountReference::has_handle() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountReference::set_has_handle() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountReference::clear_has_handle() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountReference::clear_handle() {
  if (handle_ != NULL) handle_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_handle();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& AccountReference::handle() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountReference.handle)
  return handle_ != NULL ? *handle_ : *default_instance_->handle_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* AccountReference::mutable_handle() {
  set_has_handle();
  if (handle_ == NULL) handle_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountReference.handle)
  return handle_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* AccountReference::release_handle() {
  clear_has_handle();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = handle_;
  handle_ = NULL;
  return temp;
}
inline void AccountReference::set_allocated_handle(::bgs::protocol::account::v1::GameAccountHandle* handle) {
  delete handle_;
  handle_ = handle;
  if (handle) {
    set_has_handle();
  } else {
    clear_has_handle();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountReference.handle)
}

// optional string battle_tag = 4;
inline bool AccountReference::has_battle_tag() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountReference::set_has_battle_tag() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountReference::clear_has_battle_tag() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountReference::clear_battle_tag() {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_->clear();
  }
  clear_has_battle_tag();
}
inline const ::std::string& AccountReference::battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountReference.battle_tag)
  return *battle_tag_;
}
inline void AccountReference::set_battle_tag(const ::std::string& value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountReference.battle_tag)
}
inline void AccountReference::set_battle_tag(const char* value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountReference.battle_tag)
}
inline void AccountReference::set_battle_tag(const char* value, size_t size) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountReference.battle_tag)
}
inline ::std::string* AccountReference::mutable_battle_tag() {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountReference.battle_tag)
  return battle_tag_;
}
inline ::std::string* AccountReference::release_battle_tag() {
  clear_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = battle_tag_;
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountReference::set_allocated_battle_tag(::std::string* battle_tag) {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete battle_tag_;
  }
  if (battle_tag) {
    set_has_battle_tag();
    battle_tag_ = battle_tag;
  } else {
    clear_has_battle_tag();
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountReference.battle_tag)
}

// optional uint32 region = 10 [default = 0];
inline bool AccountReference::has_region() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void AccountReference::set_has_region() {
  _has_bits_[0] |= 0x00000010u;
}
inline void AccountReference::clear_has_region() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void AccountReference::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 AccountReference::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountReference.region)
  return region_;
}
inline void AccountReference::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountReference.region)
}

// -------------------------------------------------------------------

// Identity

// optional .bgs.protocol.account.v1.AccountId account = 1;
inline bool Identity::has_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Identity::set_has_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Identity::clear_has_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Identity::clear_account() {
  if (account_ != NULL) account_->::bgs::protocol::account::v1::AccountId::Clear();
  clear_has_account();
}
inline const ::bgs::protocol::account::v1::AccountId& Identity::account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.Identity.account)
  return account_ != NULL ? *account_ : *default_instance_->account_;
}
inline ::bgs::protocol::account::v1::AccountId* Identity::mutable_account() {
  set_has_account();
  if (account_ == NULL) account_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.Identity.account)
  return account_;
}
inline ::bgs::protocol::account::v1::AccountId* Identity::release_account() {
  clear_has_account();
  ::bgs::protocol::account::v1::AccountId* temp = account_;
  account_ = NULL;
  return temp;
}
inline void Identity::set_allocated_account(::bgs::protocol::account::v1::AccountId* account) {
  delete account_;
  account_ = account;
  if (account) {
    set_has_account();
  } else {
    clear_has_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.Identity.account)
}

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 2;
inline bool Identity::has_game_account() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Identity::set_has_game_account() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Identity::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Identity::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& Identity::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.Identity.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* Identity::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.Identity.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* Identity::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void Identity::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.Identity.game_account)
}

// optional .bgs.protocol.ProcessId process = 3;
inline bool Identity::has_process() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Identity::set_has_process() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Identity::clear_has_process() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Identity::clear_process() {
  if (process_ != NULL) process_->::bgs::protocol::ProcessId::Clear();
  clear_has_process();
}
inline const ::bgs::protocol::ProcessId& Identity::process() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.Identity.process)
  return process_ != NULL ? *process_ : *default_instance_->process_;
}
inline ::bgs::protocol::ProcessId* Identity::mutable_process() {
  set_has_process();
  if (process_ == NULL) process_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.Identity.process)
  return process_;
}
inline ::bgs::protocol::ProcessId* Identity::release_process() {
  clear_has_process();
  ::bgs::protocol::ProcessId* temp = process_;
  process_ = NULL;
  return temp;
}
inline void Identity::set_allocated_process(::bgs::protocol::ProcessId* process) {
  delete process_;
  process_ = process;
  if (process) {
    set_has_process();
  } else {
    clear_has_process();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.Identity.process)
}

// -------------------------------------------------------------------

// AccountInfo

// optional bool account_paid = 1 [default = false];
inline bool AccountInfo::has_account_paid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountInfo::set_has_account_paid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountInfo::clear_has_account_paid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountInfo::clear_account_paid() {
  account_paid_ = false;
  clear_has_account_paid();
}
inline bool AccountInfo::account_paid() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.account_paid)
  return account_paid_;
}
inline void AccountInfo::set_account_paid(bool value) {
  set_has_account_paid();
  account_paid_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountInfo.account_paid)
}

// optional fixed32 country_id = 2 [default = 0];
inline bool AccountInfo::has_country_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountInfo::set_has_country_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountInfo::clear_has_country_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountInfo::clear_country_id() {
  country_id_ = 0u;
  clear_has_country_id();
}
inline ::google::protobuf::uint32 AccountInfo::country_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.country_id)
  return country_id_;
}
inline void AccountInfo::set_country_id(::google::protobuf::uint32 value) {
  set_has_country_id();
  country_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountInfo.country_id)
}

// optional string battle_tag = 3;
inline bool AccountInfo::has_battle_tag() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountInfo::set_has_battle_tag() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountInfo::clear_has_battle_tag() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountInfo::clear_battle_tag() {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_->clear();
  }
  clear_has_battle_tag();
}
inline const ::std::string& AccountInfo::battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.battle_tag)
  return *battle_tag_;
}
inline void AccountInfo::set_battle_tag(const ::std::string& value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountInfo.battle_tag)
}
inline void AccountInfo::set_battle_tag(const char* value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountInfo.battle_tag)
}
inline void AccountInfo::set_battle_tag(const char* value, size_t size) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountInfo.battle_tag)
}
inline ::std::string* AccountInfo::mutable_battle_tag() {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountInfo.battle_tag)
  return battle_tag_;
}
inline ::std::string* AccountInfo::release_battle_tag() {
  clear_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = battle_tag_;
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountInfo::set_allocated_battle_tag(::std::string* battle_tag) {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete battle_tag_;
  }
  if (battle_tag) {
    set_has_battle_tag();
    battle_tag_ = battle_tag;
  } else {
    clear_has_battle_tag();
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountInfo.battle_tag)
}

// optional bool manual_review = 4 [default = false];
inline bool AccountInfo::has_manual_review() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountInfo::set_has_manual_review() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountInfo::clear_has_manual_review() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountInfo::clear_manual_review() {
  manual_review_ = false;
  clear_has_manual_review();
}
inline bool AccountInfo::manual_review() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.manual_review)
  return manual_review_;
}
inline void AccountInfo::set_manual_review(bool value) {
  set_has_manual_review();
  manual_review_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountInfo.manual_review)
}

// optional .bgs.protocol.account.v1.Identity identity = 5;
inline bool AccountInfo::has_identity() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void AccountInfo::set_has_identity() {
  _has_bits_[0] |= 0x00000010u;
}
inline void AccountInfo::clear_has_identity() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void AccountInfo::clear_identity() {
  if (identity_ != NULL) identity_->::bgs::protocol::account::v1::Identity::Clear();
  clear_has_identity();
}
inline const ::bgs::protocol::account::v1::Identity& AccountInfo::identity() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.identity)
  return identity_ != NULL ? *identity_ : *default_instance_->identity_;
}
inline ::bgs::protocol::account::v1::Identity* AccountInfo::mutable_identity() {
  set_has_identity();
  if (identity_ == NULL) identity_ = new ::bgs::protocol::account::v1::Identity;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountInfo.identity)
  return identity_;
}
inline ::bgs::protocol::account::v1::Identity* AccountInfo::release_identity() {
  clear_has_identity();
  ::bgs::protocol::account::v1::Identity* temp = identity_;
  identity_ = NULL;
  return temp;
}
inline void AccountInfo::set_allocated_identity(::bgs::protocol::account::v1::Identity* identity) {
  delete identity_;
  identity_ = identity;
  if (identity) {
    set_has_identity();
  } else {
    clear_has_identity();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountInfo.identity)
}

// optional bool account_muted = 6 [default = false];
inline bool AccountInfo::has_account_muted() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void AccountInfo::set_has_account_muted() {
  _has_bits_[0] |= 0x00000020u;
}
inline void AccountInfo::clear_has_account_muted() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void AccountInfo::clear_account_muted() {
  account_muted_ = false;
  clear_has_account_muted();
}
inline bool AccountInfo::account_muted() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountInfo.account_muted)
  return account_muted_;
}
inline void AccountInfo::set_account_muted(bool value) {
  set_has_account_muted();
  account_muted_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountInfo.account_muted)
}

// -------------------------------------------------------------------

// ProgramTag

// optional fixed32 program = 1;
inline bool ProgramTag::has_program() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ProgramTag::set_has_program() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ProgramTag::clear_has_program() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ProgramTag::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 ProgramTag::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ProgramTag.program)
  return program_;
}
inline void ProgramTag::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ProgramTag.program)
}

// optional fixed32 tag = 2;
inline bool ProgramTag::has_tag() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ProgramTag::set_has_tag() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ProgramTag::clear_has_tag() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ProgramTag::clear_tag() {
  tag_ = 0u;
  clear_has_tag();
}
inline ::google::protobuf::uint32 ProgramTag::tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ProgramTag.tag)
  return tag_;
}
inline void ProgramTag::set_tag(::google::protobuf::uint32 value) {
  set_has_tag();
  tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ProgramTag.tag)
}

// -------------------------------------------------------------------

// RegionTag

// optional fixed32 region = 1;
inline bool RegionTag::has_region() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RegionTag::set_has_region() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RegionTag::clear_has_region() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RegionTag::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 RegionTag::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.RegionTag.region)
  return region_;
}
inline void RegionTag::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.RegionTag.region)
}

// optional fixed32 tag = 2;
inline bool RegionTag::has_tag() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RegionTag::set_has_tag() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RegionTag::clear_has_tag() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RegionTag::clear_tag() {
  tag_ = 0u;
  clear_has_tag();
}
inline ::google::protobuf::uint32 RegionTag::tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.RegionTag.tag)
  return tag_;
}
inline void RegionTag::set_tag(::google::protobuf::uint32 value) {
  set_has_tag();
  tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.RegionTag.tag)
}

// -------------------------------------------------------------------

// AccountFieldTags

// optional fixed32 account_level_info_tag = 2;
inline bool AccountFieldTags::has_account_level_info_tag() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountFieldTags::set_has_account_level_info_tag() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountFieldTags::clear_has_account_level_info_tag() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountFieldTags::clear_account_level_info_tag() {
  account_level_info_tag_ = 0u;
  clear_has_account_level_info_tag();
}
inline ::google::protobuf::uint32 AccountFieldTags::account_level_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.account_level_info_tag)
  return account_level_info_tag_;
}
inline void AccountFieldTags::set_account_level_info_tag(::google::protobuf::uint32 value) {
  set_has_account_level_info_tag();
  account_level_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldTags.account_level_info_tag)
}

// optional fixed32 privacy_info_tag = 3;
inline bool AccountFieldTags::has_privacy_info_tag() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountFieldTags::set_has_privacy_info_tag() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountFieldTags::clear_has_privacy_info_tag() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountFieldTags::clear_privacy_info_tag() {
  privacy_info_tag_ = 0u;
  clear_has_privacy_info_tag();
}
inline ::google::protobuf::uint32 AccountFieldTags::privacy_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.privacy_info_tag)
  return privacy_info_tag_;
}
inline void AccountFieldTags::set_privacy_info_tag(::google::protobuf::uint32 value) {
  set_has_privacy_info_tag();
  privacy_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldTags.privacy_info_tag)
}

// optional fixed32 parental_control_info_tag = 4;
inline bool AccountFieldTags::has_parental_control_info_tag() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountFieldTags::set_has_parental_control_info_tag() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountFieldTags::clear_has_parental_control_info_tag() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountFieldTags::clear_parental_control_info_tag() {
  parental_control_info_tag_ = 0u;
  clear_has_parental_control_info_tag();
}
inline ::google::protobuf::uint32 AccountFieldTags::parental_control_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.parental_control_info_tag)
  return parental_control_info_tag_;
}
inline void AccountFieldTags::set_parental_control_info_tag(::google::protobuf::uint32 value) {
  set_has_parental_control_info_tag();
  parental_control_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldTags.parental_control_info_tag)
}

// repeated .bgs.protocol.account.v1.ProgramTag game_level_info_tags = 7;
inline int AccountFieldTags::game_level_info_tags_size() const {
  return game_level_info_tags_.size();
}
inline void AccountFieldTags::clear_game_level_info_tags() {
  game_level_info_tags_.Clear();
}
inline const ::bgs::protocol::account::v1::ProgramTag& AccountFieldTags::game_level_info_tags(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.game_level_info_tags)
  return game_level_info_tags_.Get(index);
}
inline ::bgs::protocol::account::v1::ProgramTag* AccountFieldTags::mutable_game_level_info_tags(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountFieldTags.game_level_info_tags)
  return game_level_info_tags_.Mutable(index);
}
inline ::bgs::protocol::account::v1::ProgramTag* AccountFieldTags::add_game_level_info_tags() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountFieldTags.game_level_info_tags)
  return game_level_info_tags_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >&
AccountFieldTags::game_level_info_tags() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountFieldTags.game_level_info_tags)
  return game_level_info_tags_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >*
AccountFieldTags::mutable_game_level_info_tags() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountFieldTags.game_level_info_tags)
  return &game_level_info_tags_;
}

// repeated .bgs.protocol.account.v1.ProgramTag game_status_tags = 9;
inline int AccountFieldTags::game_status_tags_size() const {
  return game_status_tags_.size();
}
inline void AccountFieldTags::clear_game_status_tags() {
  game_status_tags_.Clear();
}
inline const ::bgs::protocol::account::v1::ProgramTag& AccountFieldTags::game_status_tags(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.game_status_tags)
  return game_status_tags_.Get(index);
}
inline ::bgs::protocol::account::v1::ProgramTag* AccountFieldTags::mutable_game_status_tags(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountFieldTags.game_status_tags)
  return game_status_tags_.Mutable(index);
}
inline ::bgs::protocol::account::v1::ProgramTag* AccountFieldTags::add_game_status_tags() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountFieldTags.game_status_tags)
  return game_status_tags_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >&
AccountFieldTags::game_status_tags() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountFieldTags.game_status_tags)
  return game_status_tags_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::ProgramTag >*
AccountFieldTags::mutable_game_status_tags() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountFieldTags.game_status_tags)
  return &game_status_tags_;
}

// repeated .bgs.protocol.account.v1.RegionTag game_account_tags = 11;
inline int AccountFieldTags::game_account_tags_size() const {
  return game_account_tags_.size();
}
inline void AccountFieldTags::clear_game_account_tags() {
  game_account_tags_.Clear();
}
inline const ::bgs::protocol::account::v1::RegionTag& AccountFieldTags::game_account_tags(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldTags.game_account_tags)
  return game_account_tags_.Get(index);
}
inline ::bgs::protocol::account::v1::RegionTag* AccountFieldTags::mutable_game_account_tags(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountFieldTags.game_account_tags)
  return game_account_tags_.Mutable(index);
}
inline ::bgs::protocol::account::v1::RegionTag* AccountFieldTags::add_game_account_tags() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountFieldTags.game_account_tags)
  return game_account_tags_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::RegionTag >&
AccountFieldTags::game_account_tags() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountFieldTags.game_account_tags)
  return game_account_tags_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::RegionTag >*
AccountFieldTags::mutable_game_account_tags() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountFieldTags.game_account_tags)
  return &game_account_tags_;
}

// -------------------------------------------------------------------

// GameAccountFieldTags

// optional fixed32 game_level_info_tag = 2;
inline bool GameAccountFieldTags::has_game_level_info_tag() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountFieldTags::set_has_game_level_info_tag() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountFieldTags::clear_has_game_level_info_tag() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountFieldTags::clear_game_level_info_tag() {
  game_level_info_tag_ = 0u;
  clear_has_game_level_info_tag();
}
inline ::google::protobuf::uint32 GameAccountFieldTags::game_level_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldTags.game_level_info_tag)
  return game_level_info_tag_;
}
inline void GameAccountFieldTags::set_game_level_info_tag(::google::protobuf::uint32 value) {
  set_has_game_level_info_tag();
  game_level_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldTags.game_level_info_tag)
}

// optional fixed32 game_time_info_tag = 3;
inline bool GameAccountFieldTags::has_game_time_info_tag() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountFieldTags::set_has_game_time_info_tag() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountFieldTags::clear_has_game_time_info_tag() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountFieldTags::clear_game_time_info_tag() {
  game_time_info_tag_ = 0u;
  clear_has_game_time_info_tag();
}
inline ::google::protobuf::uint32 GameAccountFieldTags::game_time_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldTags.game_time_info_tag)
  return game_time_info_tag_;
}
inline void GameAccountFieldTags::set_game_time_info_tag(::google::protobuf::uint32 value) {
  set_has_game_time_info_tag();
  game_time_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldTags.game_time_info_tag)
}

// optional fixed32 game_status_tag = 4;
inline bool GameAccountFieldTags::has_game_status_tag() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountFieldTags::set_has_game_status_tag() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountFieldTags::clear_has_game_status_tag() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountFieldTags::clear_game_status_tag() {
  game_status_tag_ = 0u;
  clear_has_game_status_tag();
}
inline ::google::protobuf::uint32 GameAccountFieldTags::game_status_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldTags.game_status_tag)
  return game_status_tag_;
}
inline void GameAccountFieldTags::set_game_status_tag(::google::protobuf::uint32 value) {
  set_has_game_status_tag();
  game_status_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldTags.game_status_tag)
}

// optional fixed32 raf_info_tag = 5;
inline bool GameAccountFieldTags::has_raf_info_tag() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameAccountFieldTags::set_has_raf_info_tag() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameAccountFieldTags::clear_has_raf_info_tag() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameAccountFieldTags::clear_raf_info_tag() {
  raf_info_tag_ = 0u;
  clear_has_raf_info_tag();
}
inline ::google::protobuf::uint32 GameAccountFieldTags::raf_info_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldTags.raf_info_tag)
  return raf_info_tag_;
}
inline void GameAccountFieldTags::set_raf_info_tag(::google::protobuf::uint32 value) {
  set_has_raf_info_tag();
  raf_info_tag_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldTags.raf_info_tag)
}

// -------------------------------------------------------------------

// AccountFieldOptions

// optional bool all_fields = 1;
inline bool AccountFieldOptions::has_all_fields() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountFieldOptions::set_has_all_fields() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountFieldOptions::clear_has_all_fields() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountFieldOptions::clear_all_fields() {
  all_fields_ = false;
  clear_has_all_fields();
}
inline bool AccountFieldOptions::all_fields() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.all_fields)
  return all_fields_;
}
inline void AccountFieldOptions::set_all_fields(bool value) {
  set_has_all_fields();
  all_fields_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.all_fields)
}

// optional bool field_account_level_info = 2;
inline bool AccountFieldOptions::has_field_account_level_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountFieldOptions::set_has_field_account_level_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountFieldOptions::clear_has_field_account_level_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountFieldOptions::clear_field_account_level_info() {
  field_account_level_info_ = false;
  clear_has_field_account_level_info();
}
inline bool AccountFieldOptions::field_account_level_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_account_level_info)
  return field_account_level_info_;
}
inline void AccountFieldOptions::set_field_account_level_info(bool value) {
  set_has_field_account_level_info();
  field_account_level_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_account_level_info)
}

// optional bool field_privacy_info = 3;
inline bool AccountFieldOptions::has_field_privacy_info() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountFieldOptions::set_has_field_privacy_info() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountFieldOptions::clear_has_field_privacy_info() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountFieldOptions::clear_field_privacy_info() {
  field_privacy_info_ = false;
  clear_has_field_privacy_info();
}
inline bool AccountFieldOptions::field_privacy_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_privacy_info)
  return field_privacy_info_;
}
inline void AccountFieldOptions::set_field_privacy_info(bool value) {
  set_has_field_privacy_info();
  field_privacy_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_privacy_info)
}

// optional bool field_parental_control_info = 4;
inline bool AccountFieldOptions::has_field_parental_control_info() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountFieldOptions::set_has_field_parental_control_info() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountFieldOptions::clear_has_field_parental_control_info() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountFieldOptions::clear_field_parental_control_info() {
  field_parental_control_info_ = false;
  clear_has_field_parental_control_info();
}
inline bool AccountFieldOptions::field_parental_control_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_parental_control_info)
  return field_parental_control_info_;
}
inline void AccountFieldOptions::set_field_parental_control_info(bool value) {
  set_has_field_parental_control_info();
  field_parental_control_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_parental_control_info)
}

// optional bool field_game_level_info = 6;
inline bool AccountFieldOptions::has_field_game_level_info() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void AccountFieldOptions::set_has_field_game_level_info() {
  _has_bits_[0] |= 0x00000010u;
}
inline void AccountFieldOptions::clear_has_field_game_level_info() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void AccountFieldOptions::clear_field_game_level_info() {
  field_game_level_info_ = false;
  clear_has_field_game_level_info();
}
inline bool AccountFieldOptions::field_game_level_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_game_level_info)
  return field_game_level_info_;
}
inline void AccountFieldOptions::set_field_game_level_info(bool value) {
  set_has_field_game_level_info();
  field_game_level_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_game_level_info)
}

// optional bool field_game_status = 7;
inline bool AccountFieldOptions::has_field_game_status() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void AccountFieldOptions::set_has_field_game_status() {
  _has_bits_[0] |= 0x00000020u;
}
inline void AccountFieldOptions::clear_has_field_game_status() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void AccountFieldOptions::clear_field_game_status() {
  field_game_status_ = false;
  clear_has_field_game_status();
}
inline bool AccountFieldOptions::field_game_status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_game_status)
  return field_game_status_;
}
inline void AccountFieldOptions::set_field_game_status(bool value) {
  set_has_field_game_status();
  field_game_status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_game_status)
}

// optional bool field_game_accounts = 8;
inline bool AccountFieldOptions::has_field_game_accounts() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void AccountFieldOptions::set_has_field_game_accounts() {
  _has_bits_[0] |= 0x00000040u;
}
inline void AccountFieldOptions::clear_has_field_game_accounts() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void AccountFieldOptions::clear_field_game_accounts() {
  field_game_accounts_ = false;
  clear_has_field_game_accounts();
}
inline bool AccountFieldOptions::field_game_accounts() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountFieldOptions.field_game_accounts)
  return field_game_accounts_;
}
inline void AccountFieldOptions::set_field_game_accounts(bool value) {
  set_has_field_game_accounts();
  field_game_accounts_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountFieldOptions.field_game_accounts)
}

// -------------------------------------------------------------------

// GameAccountFieldOptions

// optional bool all_fields = 1;
inline bool GameAccountFieldOptions::has_all_fields() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountFieldOptions::set_has_all_fields() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountFieldOptions::clear_has_all_fields() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountFieldOptions::clear_all_fields() {
  all_fields_ = false;
  clear_has_all_fields();
}
inline bool GameAccountFieldOptions::all_fields() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldOptions.all_fields)
  return all_fields_;
}
inline void GameAccountFieldOptions::set_all_fields(bool value) {
  set_has_all_fields();
  all_fields_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldOptions.all_fields)
}

// optional bool field_game_level_info = 2;
inline bool GameAccountFieldOptions::has_field_game_level_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountFieldOptions::set_has_field_game_level_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountFieldOptions::clear_has_field_game_level_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountFieldOptions::clear_field_game_level_info() {
  field_game_level_info_ = false;
  clear_has_field_game_level_info();
}
inline bool GameAccountFieldOptions::field_game_level_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_level_info)
  return field_game_level_info_;
}
inline void GameAccountFieldOptions::set_field_game_level_info(bool value) {
  set_has_field_game_level_info();
  field_game_level_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_level_info)
}

// optional bool field_game_time_info = 3;
inline bool GameAccountFieldOptions::has_field_game_time_info() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountFieldOptions::set_has_field_game_time_info() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountFieldOptions::clear_has_field_game_time_info() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountFieldOptions::clear_field_game_time_info() {
  field_game_time_info_ = false;
  clear_has_field_game_time_info();
}
inline bool GameAccountFieldOptions::field_game_time_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_time_info)
  return field_game_time_info_;
}
inline void GameAccountFieldOptions::set_field_game_time_info(bool value) {
  set_has_field_game_time_info();
  field_game_time_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_time_info)
}

// optional bool field_game_status = 4;
inline bool GameAccountFieldOptions::has_field_game_status() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameAccountFieldOptions::set_has_field_game_status() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameAccountFieldOptions::clear_has_field_game_status() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameAccountFieldOptions::clear_field_game_status() {
  field_game_status_ = false;
  clear_has_field_game_status();
}
inline bool GameAccountFieldOptions::field_game_status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_status)
  return field_game_status_;
}
inline void GameAccountFieldOptions::set_field_game_status(bool value) {
  set_has_field_game_status();
  field_game_status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldOptions.field_game_status)
}

// optional bool field_raf_info = 5;
inline bool GameAccountFieldOptions::has_field_raf_info() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GameAccountFieldOptions::set_has_field_raf_info() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GameAccountFieldOptions::clear_has_field_raf_info() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GameAccountFieldOptions::clear_field_raf_info() {
  field_raf_info_ = false;
  clear_has_field_raf_info();
}
inline bool GameAccountFieldOptions::field_raf_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountFieldOptions.field_raf_info)
  return field_raf_info_;
}
inline void GameAccountFieldOptions::set_field_raf_info(bool value) {
  set_has_field_raf_info();
  field_raf_info_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountFieldOptions.field_raf_info)
}

// -------------------------------------------------------------------

// SubscriberReference

// optional uint64 object_id = 1 [default = 0];
inline bool SubscriberReference::has_object_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SubscriberReference::set_has_object_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SubscriberReference::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SubscriberReference::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 SubscriberReference::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.object_id)
  return object_id_;
}
inline void SubscriberReference::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.SubscriberReference.object_id)
}

// optional .bgs.protocol.EntityId entity_id = 2;
inline bool SubscriberReference::has_entity_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SubscriberReference::set_has_entity_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SubscriberReference::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SubscriberReference::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& SubscriberReference::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* SubscriberReference::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriberReference.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* SubscriberReference::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void SubscriberReference::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.SubscriberReference.entity_id)
}

// optional .bgs.protocol.account.v1.AccountFieldOptions account_options = 3;
inline bool SubscriberReference::has_account_options() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SubscriberReference::set_has_account_options() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SubscriberReference::clear_has_account_options() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SubscriberReference::clear_account_options() {
  if (account_options_ != NULL) account_options_->::bgs::protocol::account::v1::AccountFieldOptions::Clear();
  clear_has_account_options();
}
inline const ::bgs::protocol::account::v1::AccountFieldOptions& SubscriberReference::account_options() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.account_options)
  return account_options_ != NULL ? *account_options_ : *default_instance_->account_options_;
}
inline ::bgs::protocol::account::v1::AccountFieldOptions* SubscriberReference::mutable_account_options() {
  set_has_account_options();
  if (account_options_ == NULL) account_options_ = new ::bgs::protocol::account::v1::AccountFieldOptions;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriberReference.account_options)
  return account_options_;
}
inline ::bgs::protocol::account::v1::AccountFieldOptions* SubscriberReference::release_account_options() {
  clear_has_account_options();
  ::bgs::protocol::account::v1::AccountFieldOptions* temp = account_options_;
  account_options_ = NULL;
  return temp;
}
inline void SubscriberReference::set_allocated_account_options(::bgs::protocol::account::v1::AccountFieldOptions* account_options) {
  delete account_options_;
  account_options_ = account_options;
  if (account_options) {
    set_has_account_options();
  } else {
    clear_has_account_options();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.SubscriberReference.account_options)
}

// optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 4;
inline bool SubscriberReference::has_account_tags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SubscriberReference::set_has_account_tags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void SubscriberReference::clear_has_account_tags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void SubscriberReference::clear_account_tags() {
  if (account_tags_ != NULL) account_tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_account_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& SubscriberReference::account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.account_tags)
  return account_tags_ != NULL ? *account_tags_ : *default_instance_->account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* SubscriberReference::mutable_account_tags() {
  set_has_account_tags();
  if (account_tags_ == NULL) account_tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriberReference.account_tags)
  return account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* SubscriberReference::release_account_tags() {
  clear_has_account_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = account_tags_;
  account_tags_ = NULL;
  return temp;
}
inline void SubscriberReference::set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags) {
  delete account_tags_;
  account_tags_ = account_tags;
  if (account_tags) {
    set_has_account_tags();
  } else {
    clear_has_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.SubscriberReference.account_tags)
}

// optional .bgs.protocol.account.v1.GameAccountFieldOptions game_account_options = 5;
inline bool SubscriberReference::has_game_account_options() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SubscriberReference::set_has_game_account_options() {
  _has_bits_[0] |= 0x00000010u;
}
inline void SubscriberReference::clear_has_game_account_options() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void SubscriberReference::clear_game_account_options() {
  if (game_account_options_ != NULL) game_account_options_->::bgs::protocol::account::v1::GameAccountFieldOptions::Clear();
  clear_has_game_account_options();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldOptions& SubscriberReference::game_account_options() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.game_account_options)
  return game_account_options_ != NULL ? *game_account_options_ : *default_instance_->game_account_options_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldOptions* SubscriberReference::mutable_game_account_options() {
  set_has_game_account_options();
  if (game_account_options_ == NULL) game_account_options_ = new ::bgs::protocol::account::v1::GameAccountFieldOptions;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriberReference.game_account_options)
  return game_account_options_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldOptions* SubscriberReference::release_game_account_options() {
  clear_has_game_account_options();
  ::bgs::protocol::account::v1::GameAccountFieldOptions* temp = game_account_options_;
  game_account_options_ = NULL;
  return temp;
}
inline void SubscriberReference::set_allocated_game_account_options(::bgs::protocol::account::v1::GameAccountFieldOptions* game_account_options) {
  delete game_account_options_;
  game_account_options_ = game_account_options;
  if (game_account_options) {
    set_has_game_account_options();
  } else {
    clear_has_game_account_options();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.SubscriberReference.game_account_options)
}

// optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 6;
inline bool SubscriberReference::has_game_account_tags() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SubscriberReference::set_has_game_account_tags() {
  _has_bits_[0] |= 0x00000020u;
}
inline void SubscriberReference::clear_has_game_account_tags() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void SubscriberReference::clear_game_account_tags() {
  if (game_account_tags_ != NULL) game_account_tags_->::bgs::protocol::account::v1::GameAccountFieldTags::Clear();
  clear_has_game_account_tags();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldTags& SubscriberReference::game_account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.game_account_tags)
  return game_account_tags_ != NULL ? *game_account_tags_ : *default_instance_->game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* SubscriberReference::mutable_game_account_tags() {
  set_has_game_account_tags();
  if (game_account_tags_ == NULL) game_account_tags_ = new ::bgs::protocol::account::v1::GameAccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.SubscriberReference.game_account_tags)
  return game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* SubscriberReference::release_game_account_tags() {
  clear_has_game_account_tags();
  ::bgs::protocol::account::v1::GameAccountFieldTags* temp = game_account_tags_;
  game_account_tags_ = NULL;
  return temp;
}
inline void SubscriberReference::set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags) {
  delete game_account_tags_;
  game_account_tags_ = game_account_tags;
  if (game_account_tags) {
    set_has_game_account_tags();
  } else {
    clear_has_game_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.SubscriberReference.game_account_tags)
}

// optional uint64 subscriber_id = 7 [default = 0];
inline bool SubscriberReference::has_subscriber_id() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void SubscriberReference::set_has_subscriber_id() {
  _has_bits_[0] |= 0x00000040u;
}
inline void SubscriberReference::clear_has_subscriber_id() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void SubscriberReference::clear_subscriber_id() {
  subscriber_id_ = GOOGLE_ULONGLONG(0);
  clear_has_subscriber_id();
}
inline ::google::protobuf::uint64 SubscriberReference::subscriber_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.SubscriberReference.subscriber_id)
  return subscriber_id_;
}
inline void SubscriberReference::set_subscriber_id(::google::protobuf::uint64 value) {
  set_has_subscriber_id();
  subscriber_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.SubscriberReference.subscriber_id)
}

// -------------------------------------------------------------------

// AccountLevelInfo

// repeated .bgs.protocol.account.v1.AccountLicense licenses = 3;
inline int AccountLevelInfo::licenses_size() const {
  return licenses_.size();
}
inline void AccountLevelInfo::clear_licenses() {
  licenses_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountLicense& AccountLevelInfo::licenses(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.licenses)
  return licenses_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* AccountLevelInfo::mutable_licenses(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountLevelInfo.licenses)
  return licenses_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* AccountLevelInfo::add_licenses() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountLevelInfo.licenses)
  return licenses_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
AccountLevelInfo::licenses() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountLevelInfo.licenses)
  return licenses_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
AccountLevelInfo::mutable_licenses() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountLevelInfo.licenses)
  return &licenses_;
}

// optional fixed32 default_currency = 4;
inline bool AccountLevelInfo::has_default_currency() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountLevelInfo::set_has_default_currency() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountLevelInfo::clear_has_default_currency() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountLevelInfo::clear_default_currency() {
  default_currency_ = 0u;
  clear_has_default_currency();
}
inline ::google::protobuf::uint32 AccountLevelInfo::default_currency() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.default_currency)
  return default_currency_;
}
inline void AccountLevelInfo::set_default_currency(::google::protobuf::uint32 value) {
  set_has_default_currency();
  default_currency_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.default_currency)
}

// optional string country = 5;
inline bool AccountLevelInfo::has_country() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountLevelInfo::set_has_country() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountLevelInfo::clear_has_country() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountLevelInfo::clear_country() {
  if (country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_->clear();
  }
  clear_has_country();
}
inline const ::std::string& AccountLevelInfo::country() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.country)
  return *country_;
}
inline void AccountLevelInfo::set_country(const ::std::string& value) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.country)
}
inline void AccountLevelInfo::set_country(const char* value) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountLevelInfo.country)
}
inline void AccountLevelInfo::set_country(const char* value, size_t size) {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  country_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountLevelInfo.country)
}
inline ::std::string* AccountLevelInfo::mutable_country() {
  set_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    country_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountLevelInfo.country)
  return country_;
}
inline ::std::string* AccountLevelInfo::release_country() {
  clear_has_country();
  if (country_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = country_;
    country_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountLevelInfo::set_allocated_country(::std::string* country) {
  if (country_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete country_;
  }
  if (country) {
    set_has_country();
    country_ = country;
  } else {
    clear_has_country();
    country_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountLevelInfo.country)
}

// optional uint32 preferred_region = 6;
inline bool AccountLevelInfo::has_preferred_region() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AccountLevelInfo::set_has_preferred_region() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AccountLevelInfo::clear_has_preferred_region() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AccountLevelInfo::clear_preferred_region() {
  preferred_region_ = 0u;
  clear_has_preferred_region();
}
inline ::google::protobuf::uint32 AccountLevelInfo::preferred_region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.preferred_region)
  return preferred_region_;
}
inline void AccountLevelInfo::set_preferred_region(::google::protobuf::uint32 value) {
  set_has_preferred_region();
  preferred_region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.preferred_region)
}

// optional string full_name = 7;
inline bool AccountLevelInfo::has_full_name() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void AccountLevelInfo::set_has_full_name() {
  _has_bits_[0] |= 0x00000010u;
}
inline void AccountLevelInfo::clear_has_full_name() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void AccountLevelInfo::clear_full_name() {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_->clear();
  }
  clear_has_full_name();
}
inline const ::std::string& AccountLevelInfo::full_name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.full_name)
  return *full_name_;
}
inline void AccountLevelInfo::set_full_name(const ::std::string& value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.full_name)
}
inline void AccountLevelInfo::set_full_name(const char* value) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountLevelInfo.full_name)
}
inline void AccountLevelInfo::set_full_name(const char* value, size_t size) {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  full_name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountLevelInfo.full_name)
}
inline ::std::string* AccountLevelInfo::mutable_full_name() {
  set_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    full_name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountLevelInfo.full_name)
  return full_name_;
}
inline ::std::string* AccountLevelInfo::release_full_name() {
  clear_has_full_name();
  if (full_name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = full_name_;
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountLevelInfo::set_allocated_full_name(::std::string* full_name) {
  if (full_name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete full_name_;
  }
  if (full_name) {
    set_has_full_name();
    full_name_ = full_name;
  } else {
    clear_has_full_name();
    full_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountLevelInfo.full_name)
}

// optional string battle_tag = 8;
inline bool AccountLevelInfo::has_battle_tag() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void AccountLevelInfo::set_has_battle_tag() {
  _has_bits_[0] |= 0x00000020u;
}
inline void AccountLevelInfo::clear_has_battle_tag() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void AccountLevelInfo::clear_battle_tag() {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_->clear();
  }
  clear_has_battle_tag();
}
inline const ::std::string& AccountLevelInfo::battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
  return *battle_tag_;
}
inline void AccountLevelInfo::set_battle_tag(const ::std::string& value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
}
inline void AccountLevelInfo::set_battle_tag(const char* value) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
}
inline void AccountLevelInfo::set_battle_tag(const char* value, size_t size) {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
}
inline ::std::string* AccountLevelInfo::mutable_battle_tag() {
  set_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
  return battle_tag_;
}
inline ::std::string* AccountLevelInfo::release_battle_tag() {
  clear_has_battle_tag();
  if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = battle_tag_;
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountLevelInfo::set_allocated_battle_tag(::std::string* battle_tag) {
  if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete battle_tag_;
  }
  if (battle_tag) {
    set_has_battle_tag();
    battle_tag_ = battle_tag;
  } else {
    clear_has_battle_tag();
    battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountLevelInfo.battle_tag)
}

// optional bool muted = 9;
inline bool AccountLevelInfo::has_muted() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void AccountLevelInfo::set_has_muted() {
  _has_bits_[0] |= 0x00000040u;
}
inline void AccountLevelInfo::clear_has_muted() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void AccountLevelInfo::clear_muted() {
  muted_ = false;
  clear_has_muted();
}
inline bool AccountLevelInfo::muted() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.muted)
  return muted_;
}
inline void AccountLevelInfo::set_muted(bool value) {
  set_has_muted();
  muted_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.muted)
}

// optional bool manual_review = 10;
inline bool AccountLevelInfo::has_manual_review() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void AccountLevelInfo::set_has_manual_review() {
  _has_bits_[0] |= 0x00000080u;
}
inline void AccountLevelInfo::clear_has_manual_review() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void AccountLevelInfo::clear_manual_review() {
  manual_review_ = false;
  clear_has_manual_review();
}
inline bool AccountLevelInfo::manual_review() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.manual_review)
  return manual_review_;
}
inline void AccountLevelInfo::set_manual_review(bool value) {
  set_has_manual_review();
  manual_review_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.manual_review)
}

// optional bool account_paid_any = 11;
inline bool AccountLevelInfo::has_account_paid_any() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void AccountLevelInfo::set_has_account_paid_any() {
  _has_bits_[0] |= 0x00000100u;
}
inline void AccountLevelInfo::clear_has_account_paid_any() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void AccountLevelInfo::clear_account_paid_any() {
  account_paid_any_ = false;
  clear_has_account_paid_any();
}
inline bool AccountLevelInfo::account_paid_any() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.account_paid_any)
  return account_paid_any_;
}
inline void AccountLevelInfo::set_account_paid_any(bool value) {
  set_has_account_paid_any();
  account_paid_any_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.account_paid_any)
}

// optional .bgs.protocol.account.v1.IdentityVerificationStatus identity_check_status = 12;
inline bool AccountLevelInfo::has_identity_check_status() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void AccountLevelInfo::set_has_identity_check_status() {
  _has_bits_[0] |= 0x00000200u;
}
inline void AccountLevelInfo::clear_has_identity_check_status() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void AccountLevelInfo::clear_identity_check_status() {
  identity_check_status_ = 0;
  clear_has_identity_check_status();
}
inline ::bgs::protocol::account::v1::IdentityVerificationStatus AccountLevelInfo::identity_check_status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.identity_check_status)
  return static_cast< ::bgs::protocol::account::v1::IdentityVerificationStatus >(identity_check_status_);
}
inline void AccountLevelInfo::set_identity_check_status(::bgs::protocol::account::v1::IdentityVerificationStatus value) {
  assert(::bgs::protocol::account::v1::IdentityVerificationStatus_IsValid(value));
  set_has_identity_check_status();
  identity_check_status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.identity_check_status)
}

// optional string email = 13;
inline bool AccountLevelInfo::has_email() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void AccountLevelInfo::set_has_email() {
  _has_bits_[0] |= 0x00000400u;
}
inline void AccountLevelInfo::clear_has_email() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void AccountLevelInfo::clear_email() {
  if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_->clear();
  }
  clear_has_email();
}
inline const ::std::string& AccountLevelInfo::email() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountLevelInfo.email)
  return *email_;
}
inline void AccountLevelInfo::set_email(const ::std::string& value) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AccountLevelInfo.email)
}
inline void AccountLevelInfo::set_email(const char* value) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AccountLevelInfo.email)
}
inline void AccountLevelInfo::set_email(const char* value, size_t size) {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  email_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AccountLevelInfo.email)
}
inline ::std::string* AccountLevelInfo::mutable_email() {
  set_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    email_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountLevelInfo.email)
  return email_;
}
inline ::std::string* AccountLevelInfo::release_email() {
  clear_has_email();
  if (email_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = email_;
    email_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AccountLevelInfo::set_allocated_email(::std::string* email) {
  if (email_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete email_;
  }
  if (email) {
    set_has_email();
    email_ = email;
  } else {
    clear_has_email();
    email_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountLevelInfo.email)
}

// -------------------------------------------------------------------

// PrivacyInfo

// optional bool is_using_rid = 3;
inline bool PrivacyInfo::has_is_using_rid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PrivacyInfo::set_has_is_using_rid() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PrivacyInfo::clear_has_is_using_rid() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PrivacyInfo::clear_is_using_rid() {
  is_using_rid_ = false;
  clear_has_is_using_rid();
}
inline bool PrivacyInfo::is_using_rid() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.PrivacyInfo.is_using_rid)
  return is_using_rid_;
}
inline void PrivacyInfo::set_is_using_rid(bool value) {
  set_has_is_using_rid();
  is_using_rid_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.PrivacyInfo.is_using_rid)
}

// optional bool is_real_id_visible_for_view_friends = 4;
inline bool PrivacyInfo::has_is_real_id_visible_for_view_friends() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PrivacyInfo::set_has_is_real_id_visible_for_view_friends() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PrivacyInfo::clear_has_is_real_id_visible_for_view_friends() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PrivacyInfo::clear_is_real_id_visible_for_view_friends() {
  is_real_id_visible_for_view_friends_ = false;
  clear_has_is_real_id_visible_for_view_friends();
}
inline bool PrivacyInfo::is_real_id_visible_for_view_friends() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.PrivacyInfo.is_real_id_visible_for_view_friends)
  return is_real_id_visible_for_view_friends_;
}
inline void PrivacyInfo::set_is_real_id_visible_for_view_friends(bool value) {
  set_has_is_real_id_visible_for_view_friends();
  is_real_id_visible_for_view_friends_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.PrivacyInfo.is_real_id_visible_for_view_friends)
}

// optional bool is_hidden_from_friend_finder = 5;
inline bool PrivacyInfo::has_is_hidden_from_friend_finder() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PrivacyInfo::set_has_is_hidden_from_friend_finder() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PrivacyInfo::clear_has_is_hidden_from_friend_finder() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PrivacyInfo::clear_is_hidden_from_friend_finder() {
  is_hidden_from_friend_finder_ = false;
  clear_has_is_hidden_from_friend_finder();
}
inline bool PrivacyInfo::is_hidden_from_friend_finder() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.PrivacyInfo.is_hidden_from_friend_finder)
  return is_hidden_from_friend_finder_;
}
inline void PrivacyInfo::set_is_hidden_from_friend_finder(bool value) {
  set_has_is_hidden_from_friend_finder();
  is_hidden_from_friend_finder_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.PrivacyInfo.is_hidden_from_friend_finder)
}

// optional .bgs.protocol.account.v1.PrivacyInfo.GameInfoPrivacy game_info_privacy = 6 [default = PRIVACY_FRIENDS];
inline bool PrivacyInfo::has_game_info_privacy() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PrivacyInfo::set_has_game_info_privacy() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PrivacyInfo::clear_has_game_info_privacy() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PrivacyInfo::clear_game_info_privacy() {
  game_info_privacy_ = 1;
  clear_has_game_info_privacy();
}
inline ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy PrivacyInfo::game_info_privacy() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.PrivacyInfo.game_info_privacy)
  return static_cast< ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy >(game_info_privacy_);
}
inline void PrivacyInfo::set_game_info_privacy(::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy value) {
  assert(::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy_IsValid(value));
  set_has_game_info_privacy();
  game_info_privacy_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.PrivacyInfo.game_info_privacy)
}

// -------------------------------------------------------------------

// ParentalControlInfo

// optional string timezone = 3;
inline bool ParentalControlInfo::has_timezone() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ParentalControlInfo::set_has_timezone() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ParentalControlInfo::clear_has_timezone() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ParentalControlInfo::clear_timezone() {
  if (timezone_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    timezone_->clear();
  }
  clear_has_timezone();
}
inline const ::std::string& ParentalControlInfo::timezone() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.timezone)
  return *timezone_;
}
inline void ParentalControlInfo::set_timezone(const ::std::string& value) {
  set_has_timezone();
  if (timezone_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    timezone_ = new ::std::string;
  }
  timezone_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.timezone)
}
inline void ParentalControlInfo::set_timezone(const char* value) {
  set_has_timezone();
  if (timezone_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    timezone_ = new ::std::string;
  }
  timezone_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.ParentalControlInfo.timezone)
}
inline void ParentalControlInfo::set_timezone(const char* value, size_t size) {
  set_has_timezone();
  if (timezone_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    timezone_ = new ::std::string;
  }
  timezone_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.ParentalControlInfo.timezone)
}
inline ::std::string* ParentalControlInfo::mutable_timezone() {
  set_has_timezone();
  if (timezone_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    timezone_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.ParentalControlInfo.timezone)
  return timezone_;
}
inline ::std::string* ParentalControlInfo::release_timezone() {
  clear_has_timezone();
  if (timezone_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = timezone_;
    timezone_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void ParentalControlInfo::set_allocated_timezone(::std::string* timezone) {
  if (timezone_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete timezone_;
  }
  if (timezone) {
    set_has_timezone();
    timezone_ = timezone;
  } else {
    clear_has_timezone();
    timezone_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.ParentalControlInfo.timezone)
}

// optional uint32 minutes_per_day = 4;
inline bool ParentalControlInfo::has_minutes_per_day() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ParentalControlInfo::set_has_minutes_per_day() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ParentalControlInfo::clear_has_minutes_per_day() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ParentalControlInfo::clear_minutes_per_day() {
  minutes_per_day_ = 0u;
  clear_has_minutes_per_day();
}
inline ::google::protobuf::uint32 ParentalControlInfo::minutes_per_day() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.minutes_per_day)
  return minutes_per_day_;
}
inline void ParentalControlInfo::set_minutes_per_day(::google::protobuf::uint32 value) {
  set_has_minutes_per_day();
  minutes_per_day_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.minutes_per_day)
}

// optional uint32 minutes_per_week = 5;
inline bool ParentalControlInfo::has_minutes_per_week() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ParentalControlInfo::set_has_minutes_per_week() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ParentalControlInfo::clear_has_minutes_per_week() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ParentalControlInfo::clear_minutes_per_week() {
  minutes_per_week_ = 0u;
  clear_has_minutes_per_week();
}
inline ::google::protobuf::uint32 ParentalControlInfo::minutes_per_week() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.minutes_per_week)
  return minutes_per_week_;
}
inline void ParentalControlInfo::set_minutes_per_week(::google::protobuf::uint32 value) {
  set_has_minutes_per_week();
  minutes_per_week_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.minutes_per_week)
}

// optional bool can_receive_voice = 6;
inline bool ParentalControlInfo::has_can_receive_voice() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ParentalControlInfo::set_has_can_receive_voice() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ParentalControlInfo::clear_has_can_receive_voice() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ParentalControlInfo::clear_can_receive_voice() {
  can_receive_voice_ = false;
  clear_has_can_receive_voice();
}
inline bool ParentalControlInfo::can_receive_voice() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.can_receive_voice)
  return can_receive_voice_;
}
inline void ParentalControlInfo::set_can_receive_voice(bool value) {
  set_has_can_receive_voice();
  can_receive_voice_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.can_receive_voice)
}

// optional bool can_send_voice = 7;
inline bool ParentalControlInfo::has_can_send_voice() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void ParentalControlInfo::set_has_can_send_voice() {
  _has_bits_[0] |= 0x00000010u;
}
inline void ParentalControlInfo::clear_has_can_send_voice() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void ParentalControlInfo::clear_can_send_voice() {
  can_send_voice_ = false;
  clear_has_can_send_voice();
}
inline bool ParentalControlInfo::can_send_voice() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.can_send_voice)
  return can_send_voice_;
}
inline void ParentalControlInfo::set_can_send_voice(bool value) {
  set_has_can_send_voice();
  can_send_voice_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.can_send_voice)
}

// repeated bool play_schedule = 8;
inline int ParentalControlInfo::play_schedule_size() const {
  return play_schedule_.size();
}
inline void ParentalControlInfo::clear_play_schedule() {
  play_schedule_.Clear();
}
inline bool ParentalControlInfo::play_schedule(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ParentalControlInfo.play_schedule)
  return play_schedule_.Get(index);
}
inline void ParentalControlInfo::set_play_schedule(int index, bool value) {
  play_schedule_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ParentalControlInfo.play_schedule)
}
inline void ParentalControlInfo::add_play_schedule(bool value) {
  play_schedule_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.ParentalControlInfo.play_schedule)
}
inline const ::google::protobuf::RepeatedField< bool >&
ParentalControlInfo::play_schedule() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.ParentalControlInfo.play_schedule)
  return play_schedule_;
}
inline ::google::protobuf::RepeatedField< bool >*
ParentalControlInfo::mutable_play_schedule() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.ParentalControlInfo.play_schedule)
  return &play_schedule_;
}

// -------------------------------------------------------------------

// GameLevelInfo

// optional bool is_trial = 4;
inline bool GameLevelInfo::has_is_trial() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameLevelInfo::set_has_is_trial() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameLevelInfo::clear_has_is_trial() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameLevelInfo::clear_is_trial() {
  is_trial_ = false;
  clear_has_is_trial();
}
inline bool GameLevelInfo::is_trial() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.is_trial)
  return is_trial_;
}
inline void GameLevelInfo::set_is_trial(bool value) {
  set_has_is_trial();
  is_trial_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.is_trial)
}

// optional bool is_lifetime = 5;
inline bool GameLevelInfo::has_is_lifetime() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameLevelInfo::set_has_is_lifetime() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameLevelInfo::clear_has_is_lifetime() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameLevelInfo::clear_is_lifetime() {
  is_lifetime_ = false;
  clear_has_is_lifetime();
}
inline bool GameLevelInfo::is_lifetime() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.is_lifetime)
  return is_lifetime_;
}
inline void GameLevelInfo::set_is_lifetime(bool value) {
  set_has_is_lifetime();
  is_lifetime_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.is_lifetime)
}

// optional bool is_restricted = 6;
inline bool GameLevelInfo::has_is_restricted() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameLevelInfo::set_has_is_restricted() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameLevelInfo::clear_has_is_restricted() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameLevelInfo::clear_is_restricted() {
  is_restricted_ = false;
  clear_has_is_restricted();
}
inline bool GameLevelInfo::is_restricted() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.is_restricted)
  return is_restricted_;
}
inline void GameLevelInfo::set_is_restricted(bool value) {
  set_has_is_restricted();
  is_restricted_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.is_restricted)
}

// optional bool is_beta = 7;
inline bool GameLevelInfo::has_is_beta() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameLevelInfo::set_has_is_beta() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameLevelInfo::clear_has_is_beta() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameLevelInfo::clear_is_beta() {
  is_beta_ = false;
  clear_has_is_beta();
}
inline bool GameLevelInfo::is_beta() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.is_beta)
  return is_beta_;
}
inline void GameLevelInfo::set_is_beta(bool value) {
  set_has_is_beta();
  is_beta_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.is_beta)
}

// optional string name = 8;
inline bool GameLevelInfo::has_name() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GameLevelInfo::set_has_name() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GameLevelInfo::clear_has_name() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GameLevelInfo::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& GameLevelInfo::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.name)
  return *name_;
}
inline void GameLevelInfo::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.name)
}
inline void GameLevelInfo::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameLevelInfo.name)
}
inline void GameLevelInfo::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameLevelInfo.name)
}
inline ::std::string* GameLevelInfo::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameLevelInfo.name)
  return name_;
}
inline ::std::string* GameLevelInfo::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameLevelInfo::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameLevelInfo.name)
}

// optional fixed32 program = 9;
inline bool GameLevelInfo::has_program() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GameLevelInfo::set_has_program() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GameLevelInfo::clear_has_program() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GameLevelInfo::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 GameLevelInfo::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.program)
  return program_;
}
inline void GameLevelInfo::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.program)
}

// repeated .bgs.protocol.account.v1.AccountLicense licenses = 10;
inline int GameLevelInfo::licenses_size() const {
  return licenses_.size();
}
inline void GameLevelInfo::clear_licenses() {
  licenses_.Clear();
}
inline const ::bgs::protocol::account::v1::AccountLicense& GameLevelInfo::licenses(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.licenses)
  return licenses_.Get(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GameLevelInfo::mutable_licenses(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameLevelInfo.licenses)
  return licenses_.Mutable(index);
}
inline ::bgs::protocol::account::v1::AccountLicense* GameLevelInfo::add_licenses() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GameLevelInfo.licenses)
  return licenses_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >&
GameLevelInfo::licenses() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GameLevelInfo.licenses)
  return licenses_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::AccountLicense >*
GameLevelInfo::mutable_licenses() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GameLevelInfo.licenses)
  return &licenses_;
}

// optional uint32 realm_permissions = 11;
inline bool GameLevelInfo::has_realm_permissions() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void GameLevelInfo::set_has_realm_permissions() {
  _has_bits_[0] |= 0x00000080u;
}
inline void GameLevelInfo::clear_has_realm_permissions() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void GameLevelInfo::clear_realm_permissions() {
  realm_permissions_ = 0u;
  clear_has_realm_permissions();
}
inline ::google::protobuf::uint32 GameLevelInfo::realm_permissions() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameLevelInfo.realm_permissions)
  return realm_permissions_;
}
inline void GameLevelInfo::set_realm_permissions(::google::protobuf::uint32 value) {
  set_has_realm_permissions();
  realm_permissions_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameLevelInfo.realm_permissions)
}

// -------------------------------------------------------------------

// GameTimeInfo

// optional bool is_unlimited_play_time = 3;
inline bool GameTimeInfo::has_is_unlimited_play_time() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameTimeInfo::set_has_is_unlimited_play_time() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameTimeInfo::clear_has_is_unlimited_play_time() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameTimeInfo::clear_is_unlimited_play_time() {
  is_unlimited_play_time_ = false;
  clear_has_is_unlimited_play_time();
}
inline bool GameTimeInfo::is_unlimited_play_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeInfo.is_unlimited_play_time)
  return is_unlimited_play_time_;
}
inline void GameTimeInfo::set_is_unlimited_play_time(bool value) {
  set_has_is_unlimited_play_time();
  is_unlimited_play_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeInfo.is_unlimited_play_time)
}

// optional uint64 play_time_expires = 5;
inline bool GameTimeInfo::has_play_time_expires() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameTimeInfo::set_has_play_time_expires() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameTimeInfo::clear_has_play_time_expires() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameTimeInfo::clear_play_time_expires() {
  play_time_expires_ = GOOGLE_ULONGLONG(0);
  clear_has_play_time_expires();
}
inline ::google::protobuf::uint64 GameTimeInfo::play_time_expires() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeInfo.play_time_expires)
  return play_time_expires_;
}
inline void GameTimeInfo::set_play_time_expires(::google::protobuf::uint64 value) {
  set_has_play_time_expires();
  play_time_expires_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeInfo.play_time_expires)
}

// optional bool is_subscription = 6;
inline bool GameTimeInfo::has_is_subscription() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameTimeInfo::set_has_is_subscription() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameTimeInfo::clear_has_is_subscription() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameTimeInfo::clear_is_subscription() {
  is_subscription_ = false;
  clear_has_is_subscription();
}
inline bool GameTimeInfo::is_subscription() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeInfo.is_subscription)
  return is_subscription_;
}
inline void GameTimeInfo::set_is_subscription(bool value) {
  set_has_is_subscription();
  is_subscription_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeInfo.is_subscription)
}

// optional bool is_recurring_subscription = 7;
inline bool GameTimeInfo::has_is_recurring_subscription() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameTimeInfo::set_has_is_recurring_subscription() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameTimeInfo::clear_has_is_recurring_subscription() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameTimeInfo::clear_is_recurring_subscription() {
  is_recurring_subscription_ = false;
  clear_has_is_recurring_subscription();
}
inline bool GameTimeInfo::is_recurring_subscription() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeInfo.is_recurring_subscription)
  return is_recurring_subscription_;
}
inline void GameTimeInfo::set_is_recurring_subscription(bool value) {
  set_has_is_recurring_subscription();
  is_recurring_subscription_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeInfo.is_recurring_subscription)
}

// -------------------------------------------------------------------

// GameTimeRemainingInfo

// optional uint32 minutes_remaining = 1;
inline bool GameTimeRemainingInfo::has_minutes_remaining() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameTimeRemainingInfo::set_has_minutes_remaining() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameTimeRemainingInfo::clear_has_minutes_remaining() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameTimeRemainingInfo::clear_minutes_remaining() {
  minutes_remaining_ = 0u;
  clear_has_minutes_remaining();
}
inline ::google::protobuf::uint32 GameTimeRemainingInfo::minutes_remaining() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeRemainingInfo.minutes_remaining)
  return minutes_remaining_;
}
inline void GameTimeRemainingInfo::set_minutes_remaining(::google::protobuf::uint32 value) {
  set_has_minutes_remaining();
  minutes_remaining_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeRemainingInfo.minutes_remaining)
}

// optional uint32 parental_daily_minutes_remaining = 2;
inline bool GameTimeRemainingInfo::has_parental_daily_minutes_remaining() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameTimeRemainingInfo::set_has_parental_daily_minutes_remaining() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameTimeRemainingInfo::clear_has_parental_daily_minutes_remaining() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameTimeRemainingInfo::clear_parental_daily_minutes_remaining() {
  parental_daily_minutes_remaining_ = 0u;
  clear_has_parental_daily_minutes_remaining();
}
inline ::google::protobuf::uint32 GameTimeRemainingInfo::parental_daily_minutes_remaining() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeRemainingInfo.parental_daily_minutes_remaining)
  return parental_daily_minutes_remaining_;
}
inline void GameTimeRemainingInfo::set_parental_daily_minutes_remaining(::google::protobuf::uint32 value) {
  set_has_parental_daily_minutes_remaining();
  parental_daily_minutes_remaining_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeRemainingInfo.parental_daily_minutes_remaining)
}

// optional uint32 parental_weekly_minutes_remaining = 3;
inline bool GameTimeRemainingInfo::has_parental_weekly_minutes_remaining() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameTimeRemainingInfo::set_has_parental_weekly_minutes_remaining() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameTimeRemainingInfo::clear_has_parental_weekly_minutes_remaining() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameTimeRemainingInfo::clear_parental_weekly_minutes_remaining() {
  parental_weekly_minutes_remaining_ = 0u;
  clear_has_parental_weekly_minutes_remaining();
}
inline ::google::protobuf::uint32 GameTimeRemainingInfo::parental_weekly_minutes_remaining() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeRemainingInfo.parental_weekly_minutes_remaining)
  return parental_weekly_minutes_remaining_;
}
inline void GameTimeRemainingInfo::set_parental_weekly_minutes_remaining(::google::protobuf::uint32 value) {
  set_has_parental_weekly_minutes_remaining();
  parental_weekly_minutes_remaining_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeRemainingInfo.parental_weekly_minutes_remaining)
}

// optional uint32 seconds_remaining_until_kick = 4;
inline bool GameTimeRemainingInfo::has_seconds_remaining_until_kick() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameTimeRemainingInfo::set_has_seconds_remaining_until_kick() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameTimeRemainingInfo::clear_has_seconds_remaining_until_kick() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameTimeRemainingInfo::clear_seconds_remaining_until_kick() {
  seconds_remaining_until_kick_ = 0u;
  clear_has_seconds_remaining_until_kick();
}
inline ::google::protobuf::uint32 GameTimeRemainingInfo::seconds_remaining_until_kick() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameTimeRemainingInfo.seconds_remaining_until_kick)
  return seconds_remaining_until_kick_;
}
inline void GameTimeRemainingInfo::set_seconds_remaining_until_kick(::google::protobuf::uint32 value) {
  set_has_seconds_remaining_until_kick();
  seconds_remaining_until_kick_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameTimeRemainingInfo.seconds_remaining_until_kick)
}

// -------------------------------------------------------------------

// GameStatus

// optional bool is_suspended = 4;
inline bool GameStatus::has_is_suspended() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameStatus::set_has_is_suspended() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameStatus::clear_has_is_suspended() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameStatus::clear_is_suspended() {
  is_suspended_ = false;
  clear_has_is_suspended();
}
inline bool GameStatus::is_suspended() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.is_suspended)
  return is_suspended_;
}
inline void GameStatus::set_is_suspended(bool value) {
  set_has_is_suspended();
  is_suspended_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.is_suspended)
}

// optional bool is_banned = 5;
inline bool GameStatus::has_is_banned() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameStatus::set_has_is_banned() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameStatus::clear_has_is_banned() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameStatus::clear_is_banned() {
  is_banned_ = false;
  clear_has_is_banned();
}
inline bool GameStatus::is_banned() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.is_banned)
  return is_banned_;
}
inline void GameStatus::set_is_banned(bool value) {
  set_has_is_banned();
  is_banned_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.is_banned)
}

// optional uint64 suspension_expires = 6;
inline bool GameStatus::has_suspension_expires() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameStatus::set_has_suspension_expires() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameStatus::clear_has_suspension_expires() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameStatus::clear_suspension_expires() {
  suspension_expires_ = GOOGLE_ULONGLONG(0);
  clear_has_suspension_expires();
}
inline ::google::protobuf::uint64 GameStatus::suspension_expires() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.suspension_expires)
  return suspension_expires_;
}
inline void GameStatus::set_suspension_expires(::google::protobuf::uint64 value) {
  set_has_suspension_expires();
  suspension_expires_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.suspension_expires)
}

// optional fixed32 program = 7;
inline bool GameStatus::has_program() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameStatus::set_has_program() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameStatus::clear_has_program() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameStatus::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 GameStatus::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.program)
  return program_;
}
inline void GameStatus::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.program)
}

// optional bool is_locked = 8;
inline bool GameStatus::has_is_locked() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GameStatus::set_has_is_locked() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GameStatus::clear_has_is_locked() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GameStatus::clear_is_locked() {
  is_locked_ = false;
  clear_has_is_locked();
}
inline bool GameStatus::is_locked() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.is_locked)
  return is_locked_;
}
inline void GameStatus::set_is_locked(bool value) {
  set_has_is_locked();
  is_locked_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.is_locked)
}

// optional bool is_bam_unlockable = 9;
inline bool GameStatus::has_is_bam_unlockable() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GameStatus::set_has_is_bam_unlockable() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GameStatus::clear_has_is_bam_unlockable() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GameStatus::clear_is_bam_unlockable() {
  is_bam_unlockable_ = false;
  clear_has_is_bam_unlockable();
}
inline bool GameStatus::is_bam_unlockable() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameStatus.is_bam_unlockable)
  return is_bam_unlockable_;
}
inline void GameStatus::set_is_bam_unlockable(bool value) {
  set_has_is_bam_unlockable();
  is_bam_unlockable_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameStatus.is_bam_unlockable)
}

// -------------------------------------------------------------------

// RAFInfo

// optional bytes raf_info = 1;
inline bool RAFInfo::has_raf_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RAFInfo::set_has_raf_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RAFInfo::clear_has_raf_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RAFInfo::clear_raf_info() {
  if (raf_info_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_->clear();
  }
  clear_has_raf_info();
}
inline const ::std::string& RAFInfo::raf_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.RAFInfo.raf_info)
  return *raf_info_;
}
inline void RAFInfo::set_raf_info(const ::std::string& value) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.RAFInfo.raf_info)
}
inline void RAFInfo::set_raf_info(const char* value) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.RAFInfo.raf_info)
}
inline void RAFInfo::set_raf_info(const void* value, size_t size) {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  raf_info_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.RAFInfo.raf_info)
}
inline ::std::string* RAFInfo::mutable_raf_info() {
  set_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    raf_info_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.RAFInfo.raf_info)
  return raf_info_;
}
inline ::std::string* RAFInfo::release_raf_info() {
  clear_has_raf_info();
  if (raf_info_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = raf_info_;
    raf_info_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void RAFInfo::set_allocated_raf_info(::std::string* raf_info) {
  if (raf_info_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete raf_info_;
  }
  if (raf_info) {
    set_has_raf_info();
    raf_info_ = raf_info;
  } else {
    clear_has_raf_info();
    raf_info_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.RAFInfo.raf_info)
}

// -------------------------------------------------------------------

// GameSessionInfo

// optional uint32 start_time = 3 [deprecated = true];
inline bool GameSessionInfo::has_start_time() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameSessionInfo::set_has_start_time() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameSessionInfo::clear_has_start_time() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameSessionInfo::clear_start_time() {
  start_time_ = 0u;
  clear_has_start_time();
}
inline ::google::protobuf::uint32 GameSessionInfo::start_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.start_time)
  return start_time_;
}
inline void GameSessionInfo::set_start_time(::google::protobuf::uint32 value) {
  set_has_start_time();
  start_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionInfo.start_time)
}

// optional .bgs.protocol.account.v1.GameSessionLocation location = 4;
inline bool GameSessionInfo::has_location() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameSessionInfo::set_has_location() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameSessionInfo::clear_has_location() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameSessionInfo::clear_location() {
  if (location_ != NULL) location_->::bgs::protocol::account::v1::GameSessionLocation::Clear();
  clear_has_location();
}
inline const ::bgs::protocol::account::v1::GameSessionLocation& GameSessionInfo::location() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.location)
  return location_ != NULL ? *location_ : *default_instance_->location_;
}
inline ::bgs::protocol::account::v1::GameSessionLocation* GameSessionInfo::mutable_location() {
  set_has_location();
  if (location_ == NULL) location_ = new ::bgs::protocol::account::v1::GameSessionLocation;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameSessionInfo.location)
  return location_;
}
inline ::bgs::protocol::account::v1::GameSessionLocation* GameSessionInfo::release_location() {
  clear_has_location();
  ::bgs::protocol::account::v1::GameSessionLocation* temp = location_;
  location_ = NULL;
  return temp;
}
inline void GameSessionInfo::set_allocated_location(::bgs::protocol::account::v1::GameSessionLocation* location) {
  delete location_;
  location_ = location;
  if (location) {
    set_has_location();
  } else {
    clear_has_location();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameSessionInfo.location)
}

// optional bool has_benefactor = 5;
inline bool GameSessionInfo::has_has_benefactor() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameSessionInfo::set_has_has_benefactor() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameSessionInfo::clear_has_has_benefactor() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameSessionInfo::clear_has_benefactor() {
  has_benefactor_ = false;
  clear_has_has_benefactor();
}
inline bool GameSessionInfo::has_benefactor() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.has_benefactor)
  return has_benefactor_;
}
inline void GameSessionInfo::set_has_benefactor(bool value) {
  set_has_has_benefactor();
  has_benefactor_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionInfo.has_benefactor)
}

// optional bool is_using_igr = 6;
inline bool GameSessionInfo::has_is_using_igr() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameSessionInfo::set_has_is_using_igr() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameSessionInfo::clear_has_is_using_igr() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameSessionInfo::clear_is_using_igr() {
  is_using_igr_ = false;
  clear_has_is_using_igr();
}
inline bool GameSessionInfo::is_using_igr() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.is_using_igr)
  return is_using_igr_;
}
inline void GameSessionInfo::set_is_using_igr(bool value) {
  set_has_is_using_igr();
  is_using_igr_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionInfo.is_using_igr)
}

// optional bool parental_controls_active = 7;
inline bool GameSessionInfo::has_parental_controls_active() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void GameSessionInfo::set_has_parental_controls_active() {
  _has_bits_[0] |= 0x00000010u;
}
inline void GameSessionInfo::clear_has_parental_controls_active() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void GameSessionInfo::clear_parental_controls_active() {
  parental_controls_active_ = false;
  clear_has_parental_controls_active();
}
inline bool GameSessionInfo::parental_controls_active() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.parental_controls_active)
  return parental_controls_active_;
}
inline void GameSessionInfo::set_parental_controls_active(bool value) {
  set_has_parental_controls_active();
  parental_controls_active_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionInfo.parental_controls_active)
}

// optional uint64 start_time_sec = 8;
inline bool GameSessionInfo::has_start_time_sec() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void GameSessionInfo::set_has_start_time_sec() {
  _has_bits_[0] |= 0x00000020u;
}
inline void GameSessionInfo::clear_has_start_time_sec() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void GameSessionInfo::clear_start_time_sec() {
  start_time_sec_ = GOOGLE_ULONGLONG(0);
  clear_has_start_time_sec();
}
inline ::google::protobuf::uint64 GameSessionInfo::start_time_sec() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.start_time_sec)
  return start_time_sec_;
}
inline void GameSessionInfo::set_start_time_sec(::google::protobuf::uint64 value) {
  set_has_start_time_sec();
  start_time_sec_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionInfo.start_time_sec)
}

// optional .bgs.protocol.account.v1.IgrId igr_id = 9;
inline bool GameSessionInfo::has_igr_id() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void GameSessionInfo::set_has_igr_id() {
  _has_bits_[0] |= 0x00000040u;
}
inline void GameSessionInfo::clear_has_igr_id() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void GameSessionInfo::clear_igr_id() {
  if (igr_id_ != NULL) igr_id_->::bgs::protocol::account::v1::IgrId::Clear();
  clear_has_igr_id();
}
inline const ::bgs::protocol::account::v1::IgrId& GameSessionInfo::igr_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionInfo.igr_id)
  return igr_id_ != NULL ? *igr_id_ : *default_instance_->igr_id_;
}
inline ::bgs::protocol::account::v1::IgrId* GameSessionInfo::mutable_igr_id() {
  set_has_igr_id();
  if (igr_id_ == NULL) igr_id_ = new ::bgs::protocol::account::v1::IgrId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameSessionInfo.igr_id)
  return igr_id_;
}
inline ::bgs::protocol::account::v1::IgrId* GameSessionInfo::release_igr_id() {
  clear_has_igr_id();
  ::bgs::protocol::account::v1::IgrId* temp = igr_id_;
  igr_id_ = NULL;
  return temp;
}
inline void GameSessionInfo::set_allocated_igr_id(::bgs::protocol::account::v1::IgrId* igr_id) {
  delete igr_id_;
  igr_id_ = igr_id;
  if (igr_id) {
    set_has_igr_id();
  } else {
    clear_has_igr_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameSessionInfo.igr_id)
}

// -------------------------------------------------------------------

// GameSessionUpdateInfo

// optional .bgs.protocol.account.v1.CAIS cais = 8;
inline bool GameSessionUpdateInfo::has_cais() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameSessionUpdateInfo::set_has_cais() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameSessionUpdateInfo::clear_has_cais() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameSessionUpdateInfo::clear_cais() {
  if (cais_ != NULL) cais_->::bgs::protocol::account::v1::CAIS::Clear();
  clear_has_cais();
}
inline const ::bgs::protocol::account::v1::CAIS& GameSessionUpdateInfo::cais() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionUpdateInfo.cais)
  return cais_ != NULL ? *cais_ : *default_instance_->cais_;
}
inline ::bgs::protocol::account::v1::CAIS* GameSessionUpdateInfo::mutable_cais() {
  set_has_cais();
  if (cais_ == NULL) cais_ = new ::bgs::protocol::account::v1::CAIS;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameSessionUpdateInfo.cais)
  return cais_;
}
inline ::bgs::protocol::account::v1::CAIS* GameSessionUpdateInfo::release_cais() {
  clear_has_cais();
  ::bgs::protocol::account::v1::CAIS* temp = cais_;
  cais_ = NULL;
  return temp;
}
inline void GameSessionUpdateInfo::set_allocated_cais(::bgs::protocol::account::v1::CAIS* cais) {
  delete cais_;
  cais_ = cais;
  if (cais) {
    set_has_cais();
  } else {
    clear_has_cais();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameSessionUpdateInfo.cais)
}

// -------------------------------------------------------------------

// GameSessionLocation

// optional string ip_address = 1;
inline bool GameSessionLocation::has_ip_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameSessionLocation::set_has_ip_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameSessionLocation::clear_has_ip_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameSessionLocation::clear_ip_address() {
  if (ip_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    ip_address_->clear();
  }
  clear_has_ip_address();
}
inline const ::std::string& GameSessionLocation::ip_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionLocation.ip_address)
  return *ip_address_;
}
inline void GameSessionLocation::set_ip_address(const ::std::string& value) {
  set_has_ip_address();
  if (ip_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    ip_address_ = new ::std::string;
  }
  ip_address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionLocation.ip_address)
}
inline void GameSessionLocation::set_ip_address(const char* value) {
  set_has_ip_address();
  if (ip_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    ip_address_ = new ::std::string;
  }
  ip_address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameSessionLocation.ip_address)
}
inline void GameSessionLocation::set_ip_address(const char* value, size_t size) {
  set_has_ip_address();
  if (ip_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    ip_address_ = new ::std::string;
  }
  ip_address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameSessionLocation.ip_address)
}
inline ::std::string* GameSessionLocation::mutable_ip_address() {
  set_has_ip_address();
  if (ip_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    ip_address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameSessionLocation.ip_address)
  return ip_address_;
}
inline ::std::string* GameSessionLocation::release_ip_address() {
  clear_has_ip_address();
  if (ip_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = ip_address_;
    ip_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameSessionLocation::set_allocated_ip_address(::std::string* ip_address) {
  if (ip_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete ip_address_;
  }
  if (ip_address) {
    set_has_ip_address();
    ip_address_ = ip_address;
  } else {
    clear_has_ip_address();
    ip_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameSessionLocation.ip_address)
}

// optional uint32 country = 2;
inline bool GameSessionLocation::has_country() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameSessionLocation::set_has_country() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameSessionLocation::clear_has_country() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameSessionLocation::clear_country() {
  country_ = 0u;
  clear_has_country();
}
inline ::google::protobuf::uint32 GameSessionLocation::country() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionLocation.country)
  return country_;
}
inline void GameSessionLocation::set_country(::google::protobuf::uint32 value) {
  set_has_country();
  country_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionLocation.country)
}

// optional string city = 3;
inline bool GameSessionLocation::has_city() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameSessionLocation::set_has_city() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameSessionLocation::clear_has_city() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameSessionLocation::clear_city() {
  if (city_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    city_->clear();
  }
  clear_has_city();
}
inline const ::std::string& GameSessionLocation::city() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameSessionLocation.city)
  return *city_;
}
inline void GameSessionLocation::set_city(const ::std::string& value) {
  set_has_city();
  if (city_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    city_ = new ::std::string;
  }
  city_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameSessionLocation.city)
}
inline void GameSessionLocation::set_city(const char* value) {
  set_has_city();
  if (city_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    city_ = new ::std::string;
  }
  city_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.GameSessionLocation.city)
}
inline void GameSessionLocation::set_city(const char* value, size_t size) {
  set_has_city();
  if (city_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    city_ = new ::std::string;
  }
  city_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.GameSessionLocation.city)
}
inline ::std::string* GameSessionLocation::mutable_city() {
  set_has_city();
  if (city_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    city_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameSessionLocation.city)
  return city_;
}
inline ::std::string* GameSessionLocation::release_city() {
  clear_has_city();
  if (city_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = city_;
    city_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameSessionLocation::set_allocated_city(::std::string* city) {
  if (city_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete city_;
  }
  if (city) {
    set_has_city();
    city_ = city;
  } else {
    clear_has_city();
    city_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameSessionLocation.city)
}

// -------------------------------------------------------------------

// CAIS

// optional uint32 played_minutes = 1;
inline bool CAIS::has_played_minutes() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CAIS::set_has_played_minutes() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CAIS::clear_has_played_minutes() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CAIS::clear_played_minutes() {
  played_minutes_ = 0u;
  clear_has_played_minutes();
}
inline ::google::protobuf::uint32 CAIS::played_minutes() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CAIS.played_minutes)
  return played_minutes_;
}
inline void CAIS::set_played_minutes(::google::protobuf::uint32 value) {
  set_has_played_minutes();
  played_minutes_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CAIS.played_minutes)
}

// optional uint32 rested_minutes = 2;
inline bool CAIS::has_rested_minutes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CAIS::set_has_rested_minutes() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CAIS::clear_has_rested_minutes() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CAIS::clear_rested_minutes() {
  rested_minutes_ = 0u;
  clear_has_rested_minutes();
}
inline ::google::protobuf::uint32 CAIS::rested_minutes() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CAIS.rested_minutes)
  return rested_minutes_;
}
inline void CAIS::set_rested_minutes(::google::protobuf::uint32 value) {
  set_has_rested_minutes();
  rested_minutes_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CAIS.rested_minutes)
}

// optional uint64 last_heard_time = 3;
inline bool CAIS::has_last_heard_time() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void CAIS::set_has_last_heard_time() {
  _has_bits_[0] |= 0x00000004u;
}
inline void CAIS::clear_has_last_heard_time() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void CAIS::clear_last_heard_time() {
  last_heard_time_ = GOOGLE_ULONGLONG(0);
  clear_has_last_heard_time();
}
inline ::google::protobuf::uint64 CAIS::last_heard_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.CAIS.last_heard_time)
  return last_heard_time_;
}
inline void CAIS::set_last_heard_time(::google::protobuf::uint64 value) {
  set_has_last_heard_time();
  last_heard_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.CAIS.last_heard_time)
}

// -------------------------------------------------------------------

// GameAccountList

// optional uint32 region = 3;
inline bool GameAccountList::has_region() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountList::set_has_region() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountList::clear_has_region() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountList::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 GameAccountList::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountList.region)
  return region_;
}
inline void GameAccountList::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.GameAccountList.region)
}

// repeated .bgs.protocol.account.v1.GameAccountHandle handle = 4;
inline int GameAccountList::handle_size() const {
  return handle_.size();
}
inline void GameAccountList::clear_handle() {
  handle_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& GameAccountList::handle(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountList.handle)
  return handle_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountList::mutable_handle(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountList.handle)
  return handle_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountHandle* GameAccountList::add_handle() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.GameAccountList.handle)
  return handle_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >&
GameAccountList::handle() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.GameAccountList.handle)
  return handle_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountHandle >*
GameAccountList::mutable_handle() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.GameAccountList.handle)
  return &handle_;
}

// -------------------------------------------------------------------

// AccountState

// optional .bgs.protocol.account.v1.AccountLevelInfo account_level_info = 1;
inline bool AccountState::has_account_level_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountState::set_has_account_level_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountState::clear_has_account_level_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountState::clear_account_level_info() {
  if (account_level_info_ != NULL) account_level_info_->::bgs::protocol::account::v1::AccountLevelInfo::Clear();
  clear_has_account_level_info();
}
inline const ::bgs::protocol::account::v1::AccountLevelInfo& AccountState::account_level_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.account_level_info)
  return account_level_info_ != NULL ? *account_level_info_ : *default_instance_->account_level_info_;
}
inline ::bgs::protocol::account::v1::AccountLevelInfo* AccountState::mutable_account_level_info() {
  set_has_account_level_info();
  if (account_level_info_ == NULL) account_level_info_ = new ::bgs::protocol::account::v1::AccountLevelInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.account_level_info)
  return account_level_info_;
}
inline ::bgs::protocol::account::v1::AccountLevelInfo* AccountState::release_account_level_info() {
  clear_has_account_level_info();
  ::bgs::protocol::account::v1::AccountLevelInfo* temp = account_level_info_;
  account_level_info_ = NULL;
  return temp;
}
inline void AccountState::set_allocated_account_level_info(::bgs::protocol::account::v1::AccountLevelInfo* account_level_info) {
  delete account_level_info_;
  account_level_info_ = account_level_info;
  if (account_level_info) {
    set_has_account_level_info();
  } else {
    clear_has_account_level_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountState.account_level_info)
}

// optional .bgs.protocol.account.v1.PrivacyInfo privacy_info = 2;
inline bool AccountState::has_privacy_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountState::set_has_privacy_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountState::clear_has_privacy_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountState::clear_privacy_info() {
  if (privacy_info_ != NULL) privacy_info_->::bgs::protocol::account::v1::PrivacyInfo::Clear();
  clear_has_privacy_info();
}
inline const ::bgs::protocol::account::v1::PrivacyInfo& AccountState::privacy_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.privacy_info)
  return privacy_info_ != NULL ? *privacy_info_ : *default_instance_->privacy_info_;
}
inline ::bgs::protocol::account::v1::PrivacyInfo* AccountState::mutable_privacy_info() {
  set_has_privacy_info();
  if (privacy_info_ == NULL) privacy_info_ = new ::bgs::protocol::account::v1::PrivacyInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.privacy_info)
  return privacy_info_;
}
inline ::bgs::protocol::account::v1::PrivacyInfo* AccountState::release_privacy_info() {
  clear_has_privacy_info();
  ::bgs::protocol::account::v1::PrivacyInfo* temp = privacy_info_;
  privacy_info_ = NULL;
  return temp;
}
inline void AccountState::set_allocated_privacy_info(::bgs::protocol::account::v1::PrivacyInfo* privacy_info) {
  delete privacy_info_;
  privacy_info_ = privacy_info;
  if (privacy_info) {
    set_has_privacy_info();
  } else {
    clear_has_privacy_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountState.privacy_info)
}

// optional .bgs.protocol.account.v1.ParentalControlInfo parental_control_info = 3;
inline bool AccountState::has_parental_control_info() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AccountState::set_has_parental_control_info() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AccountState::clear_has_parental_control_info() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AccountState::clear_parental_control_info() {
  if (parental_control_info_ != NULL) parental_control_info_->::bgs::protocol::account::v1::ParentalControlInfo::Clear();
  clear_has_parental_control_info();
}
inline const ::bgs::protocol::account::v1::ParentalControlInfo& AccountState::parental_control_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.parental_control_info)
  return parental_control_info_ != NULL ? *parental_control_info_ : *default_instance_->parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* AccountState::mutable_parental_control_info() {
  set_has_parental_control_info();
  if (parental_control_info_ == NULL) parental_control_info_ = new ::bgs::protocol::account::v1::ParentalControlInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.parental_control_info)
  return parental_control_info_;
}
inline ::bgs::protocol::account::v1::ParentalControlInfo* AccountState::release_parental_control_info() {
  clear_has_parental_control_info();
  ::bgs::protocol::account::v1::ParentalControlInfo* temp = parental_control_info_;
  parental_control_info_ = NULL;
  return temp;
}
inline void AccountState::set_allocated_parental_control_info(::bgs::protocol::account::v1::ParentalControlInfo* parental_control_info) {
  delete parental_control_info_;
  parental_control_info_ = parental_control_info;
  if (parental_control_info) {
    set_has_parental_control_info();
  } else {
    clear_has_parental_control_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountState.parental_control_info)
}

// repeated .bgs.protocol.account.v1.GameLevelInfo game_level_info = 5;
inline int AccountState::game_level_info_size() const {
  return game_level_info_.size();
}
inline void AccountState::clear_game_level_info() {
  game_level_info_.Clear();
}
inline const ::bgs::protocol::account::v1::GameLevelInfo& AccountState::game_level_info(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.game_level_info)
  return game_level_info_.Get(index);
}
inline ::bgs::protocol::account::v1::GameLevelInfo* AccountState::mutable_game_level_info(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.game_level_info)
  return game_level_info_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameLevelInfo* AccountState::add_game_level_info() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountState.game_level_info)
  return game_level_info_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameLevelInfo >&
AccountState::game_level_info() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountState.game_level_info)
  return game_level_info_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameLevelInfo >*
AccountState::mutable_game_level_info() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountState.game_level_info)
  return &game_level_info_;
}

// repeated .bgs.protocol.account.v1.GameStatus game_status = 6;
inline int AccountState::game_status_size() const {
  return game_status_.size();
}
inline void AccountState::clear_game_status() {
  game_status_.Clear();
}
inline const ::bgs::protocol::account::v1::GameStatus& AccountState::game_status(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.game_status)
  return game_status_.Get(index);
}
inline ::bgs::protocol::account::v1::GameStatus* AccountState::mutable_game_status(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.game_status)
  return game_status_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameStatus* AccountState::add_game_status() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountState.game_status)
  return game_status_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameStatus >&
AccountState::game_status() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountState.game_status)
  return game_status_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameStatus >*
AccountState::mutable_game_status() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountState.game_status)
  return &game_status_;
}

// repeated .bgs.protocol.account.v1.GameAccountList game_accounts = 7;
inline int AccountState::game_accounts_size() const {
  return game_accounts_.size();
}
inline void AccountState::clear_game_accounts() {
  game_accounts_.Clear();
}
inline const ::bgs::protocol::account::v1::GameAccountList& AccountState::game_accounts(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountState.game_accounts)
  return game_accounts_.Get(index);
}
inline ::bgs::protocol::account::v1::GameAccountList* AccountState::mutable_game_accounts(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountState.game_accounts)
  return game_accounts_.Mutable(index);
}
inline ::bgs::protocol::account::v1::GameAccountList* AccountState::add_game_accounts() {
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AccountState.game_accounts)
  return game_accounts_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >&
AccountState::game_accounts() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AccountState.game_accounts)
  return game_accounts_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::account::v1::GameAccountList >*
AccountState::mutable_game_accounts() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AccountState.game_accounts)
  return &game_accounts_;
}

// -------------------------------------------------------------------

// AccountStateTagged

// optional .bgs.protocol.account.v1.AccountState account_state = 1;
inline bool AccountStateTagged::has_account_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AccountStateTagged::set_has_account_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AccountStateTagged::clear_has_account_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AccountStateTagged::clear_account_state() {
  if (account_state_ != NULL) account_state_->::bgs::protocol::account::v1::AccountState::Clear();
  clear_has_account_state();
}
inline const ::bgs::protocol::account::v1::AccountState& AccountStateTagged::account_state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateTagged.account_state)
  return account_state_ != NULL ? *account_state_ : *default_instance_->account_state_;
}
inline ::bgs::protocol::account::v1::AccountState* AccountStateTagged::mutable_account_state() {
  set_has_account_state();
  if (account_state_ == NULL) account_state_ = new ::bgs::protocol::account::v1::AccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountStateTagged.account_state)
  return account_state_;
}
inline ::bgs::protocol::account::v1::AccountState* AccountStateTagged::release_account_state() {
  clear_has_account_state();
  ::bgs::protocol::account::v1::AccountState* temp = account_state_;
  account_state_ = NULL;
  return temp;
}
inline void AccountStateTagged::set_allocated_account_state(::bgs::protocol::account::v1::AccountState* account_state) {
  delete account_state_;
  account_state_ = account_state;
  if (account_state) {
    set_has_account_state();
  } else {
    clear_has_account_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountStateTagged.account_state)
}

// optional .bgs.protocol.account.v1.AccountFieldTags account_tags = 2;
inline bool AccountStateTagged::has_account_tags() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AccountStateTagged::set_has_account_tags() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AccountStateTagged::clear_has_account_tags() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AccountStateTagged::clear_account_tags() {
  if (account_tags_ != NULL) account_tags_->::bgs::protocol::account::v1::AccountFieldTags::Clear();
  clear_has_account_tags();
}
inline const ::bgs::protocol::account::v1::AccountFieldTags& AccountStateTagged::account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AccountStateTagged.account_tags)
  return account_tags_ != NULL ? *account_tags_ : *default_instance_->account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* AccountStateTagged::mutable_account_tags() {
  set_has_account_tags();
  if (account_tags_ == NULL) account_tags_ = new ::bgs::protocol::account::v1::AccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AccountStateTagged.account_tags)
  return account_tags_;
}
inline ::bgs::protocol::account::v1::AccountFieldTags* AccountStateTagged::release_account_tags() {
  clear_has_account_tags();
  ::bgs::protocol::account::v1::AccountFieldTags* temp = account_tags_;
  account_tags_ = NULL;
  return temp;
}
inline void AccountStateTagged::set_allocated_account_tags(::bgs::protocol::account::v1::AccountFieldTags* account_tags) {
  delete account_tags_;
  account_tags_ = account_tags;
  if (account_tags) {
    set_has_account_tags();
  } else {
    clear_has_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AccountStateTagged.account_tags)
}

// -------------------------------------------------------------------

// GameAccountState

// optional .bgs.protocol.account.v1.GameLevelInfo game_level_info = 1;
inline bool GameAccountState::has_game_level_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountState::set_has_game_level_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountState::clear_has_game_level_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountState::clear_game_level_info() {
  if (game_level_info_ != NULL) game_level_info_->::bgs::protocol::account::v1::GameLevelInfo::Clear();
  clear_has_game_level_info();
}
inline const ::bgs::protocol::account::v1::GameLevelInfo& GameAccountState::game_level_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountState.game_level_info)
  return game_level_info_ != NULL ? *game_level_info_ : *default_instance_->game_level_info_;
}
inline ::bgs::protocol::account::v1::GameLevelInfo* GameAccountState::mutable_game_level_info() {
  set_has_game_level_info();
  if (game_level_info_ == NULL) game_level_info_ = new ::bgs::protocol::account::v1::GameLevelInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountState.game_level_info)
  return game_level_info_;
}
inline ::bgs::protocol::account::v1::GameLevelInfo* GameAccountState::release_game_level_info() {
  clear_has_game_level_info();
  ::bgs::protocol::account::v1::GameLevelInfo* temp = game_level_info_;
  game_level_info_ = NULL;
  return temp;
}
inline void GameAccountState::set_allocated_game_level_info(::bgs::protocol::account::v1::GameLevelInfo* game_level_info) {
  delete game_level_info_;
  game_level_info_ = game_level_info;
  if (game_level_info) {
    set_has_game_level_info();
  } else {
    clear_has_game_level_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountState.game_level_info)
}

// optional .bgs.protocol.account.v1.GameTimeInfo game_time_info = 2;
inline bool GameAccountState::has_game_time_info() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountState::set_has_game_time_info() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountState::clear_has_game_time_info() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountState::clear_game_time_info() {
  if (game_time_info_ != NULL) game_time_info_->::bgs::protocol::account::v1::GameTimeInfo::Clear();
  clear_has_game_time_info();
}
inline const ::bgs::protocol::account::v1::GameTimeInfo& GameAccountState::game_time_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountState.game_time_info)
  return game_time_info_ != NULL ? *game_time_info_ : *default_instance_->game_time_info_;
}
inline ::bgs::protocol::account::v1::GameTimeInfo* GameAccountState::mutable_game_time_info() {
  set_has_game_time_info();
  if (game_time_info_ == NULL) game_time_info_ = new ::bgs::protocol::account::v1::GameTimeInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountState.game_time_info)
  return game_time_info_;
}
inline ::bgs::protocol::account::v1::GameTimeInfo* GameAccountState::release_game_time_info() {
  clear_has_game_time_info();
  ::bgs::protocol::account::v1::GameTimeInfo* temp = game_time_info_;
  game_time_info_ = NULL;
  return temp;
}
inline void GameAccountState::set_allocated_game_time_info(::bgs::protocol::account::v1::GameTimeInfo* game_time_info) {
  delete game_time_info_;
  game_time_info_ = game_time_info;
  if (game_time_info) {
    set_has_game_time_info();
  } else {
    clear_has_game_time_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountState.game_time_info)
}

// optional .bgs.protocol.account.v1.GameStatus game_status = 3;
inline bool GameAccountState::has_game_status() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountState::set_has_game_status() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountState::clear_has_game_status() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountState::clear_game_status() {
  if (game_status_ != NULL) game_status_->::bgs::protocol::account::v1::GameStatus::Clear();
  clear_has_game_status();
}
inline const ::bgs::protocol::account::v1::GameStatus& GameAccountState::game_status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountState.game_status)
  return game_status_ != NULL ? *game_status_ : *default_instance_->game_status_;
}
inline ::bgs::protocol::account::v1::GameStatus* GameAccountState::mutable_game_status() {
  set_has_game_status();
  if (game_status_ == NULL) game_status_ = new ::bgs::protocol::account::v1::GameStatus;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountState.game_status)
  return game_status_;
}
inline ::bgs::protocol::account::v1::GameStatus* GameAccountState::release_game_status() {
  clear_has_game_status();
  ::bgs::protocol::account::v1::GameStatus* temp = game_status_;
  game_status_ = NULL;
  return temp;
}
inline void GameAccountState::set_allocated_game_status(::bgs::protocol::account::v1::GameStatus* game_status) {
  delete game_status_;
  game_status_ = game_status;
  if (game_status) {
    set_has_game_status();
  } else {
    clear_has_game_status();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountState.game_status)
}

// optional .bgs.protocol.account.v1.RAFInfo raf_info = 4;
inline bool GameAccountState::has_raf_info() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void GameAccountState::set_has_raf_info() {
  _has_bits_[0] |= 0x00000008u;
}
inline void GameAccountState::clear_has_raf_info() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void GameAccountState::clear_raf_info() {
  if (raf_info_ != NULL) raf_info_->::bgs::protocol::account::v1::RAFInfo::Clear();
  clear_has_raf_info();
}
inline const ::bgs::protocol::account::v1::RAFInfo& GameAccountState::raf_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountState.raf_info)
  return raf_info_ != NULL ? *raf_info_ : *default_instance_->raf_info_;
}
inline ::bgs::protocol::account::v1::RAFInfo* GameAccountState::mutable_raf_info() {
  set_has_raf_info();
  if (raf_info_ == NULL) raf_info_ = new ::bgs::protocol::account::v1::RAFInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountState.raf_info)
  return raf_info_;
}
inline ::bgs::protocol::account::v1::RAFInfo* GameAccountState::release_raf_info() {
  clear_has_raf_info();
  ::bgs::protocol::account::v1::RAFInfo* temp = raf_info_;
  raf_info_ = NULL;
  return temp;
}
inline void GameAccountState::set_allocated_raf_info(::bgs::protocol::account::v1::RAFInfo* raf_info) {
  delete raf_info_;
  raf_info_ = raf_info;
  if (raf_info) {
    set_has_raf_info();
  } else {
    clear_has_raf_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountState.raf_info)
}

// -------------------------------------------------------------------

// GameAccountStateTagged

// optional .bgs.protocol.account.v1.GameAccountState game_account_state = 1;
inline bool GameAccountStateTagged::has_game_account_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountStateTagged::set_has_game_account_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountStateTagged::clear_has_game_account_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountStateTagged::clear_game_account_state() {
  if (game_account_state_ != NULL) game_account_state_->::bgs::protocol::account::v1::GameAccountState::Clear();
  clear_has_game_account_state();
}
inline const ::bgs::protocol::account::v1::GameAccountState& GameAccountStateTagged::game_account_state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateTagged.game_account_state)
  return game_account_state_ != NULL ? *game_account_state_ : *default_instance_->game_account_state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GameAccountStateTagged::mutable_game_account_state() {
  set_has_game_account_state();
  if (game_account_state_ == NULL) game_account_state_ = new ::bgs::protocol::account::v1::GameAccountState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountStateTagged.game_account_state)
  return game_account_state_;
}
inline ::bgs::protocol::account::v1::GameAccountState* GameAccountStateTagged::release_game_account_state() {
  clear_has_game_account_state();
  ::bgs::protocol::account::v1::GameAccountState* temp = game_account_state_;
  game_account_state_ = NULL;
  return temp;
}
inline void GameAccountStateTagged::set_allocated_game_account_state(::bgs::protocol::account::v1::GameAccountState* game_account_state) {
  delete game_account_state_;
  game_account_state_ = game_account_state;
  if (game_account_state) {
    set_has_game_account_state();
  } else {
    clear_has_game_account_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountStateTagged.game_account_state)
}

// optional .bgs.protocol.account.v1.GameAccountFieldTags game_account_tags = 2;
inline bool GameAccountStateTagged::has_game_account_tags() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountStateTagged::set_has_game_account_tags() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountStateTagged::clear_has_game_account_tags() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountStateTagged::clear_game_account_tags() {
  if (game_account_tags_ != NULL) game_account_tags_->::bgs::protocol::account::v1::GameAccountFieldTags::Clear();
  clear_has_game_account_tags();
}
inline const ::bgs::protocol::account::v1::GameAccountFieldTags& GameAccountStateTagged::game_account_tags() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.GameAccountStateTagged.game_account_tags)
  return game_account_tags_ != NULL ? *game_account_tags_ : *default_instance_->game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GameAccountStateTagged::mutable_game_account_tags() {
  set_has_game_account_tags();
  if (game_account_tags_ == NULL) game_account_tags_ = new ::bgs::protocol::account::v1::GameAccountFieldTags;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.GameAccountStateTagged.game_account_tags)
  return game_account_tags_;
}
inline ::bgs::protocol::account::v1::GameAccountFieldTags* GameAccountStateTagged::release_game_account_tags() {
  clear_has_game_account_tags();
  ::bgs::protocol::account::v1::GameAccountFieldTags* temp = game_account_tags_;
  game_account_tags_ = NULL;
  return temp;
}
inline void GameAccountStateTagged::set_allocated_game_account_tags(::bgs::protocol::account::v1::GameAccountFieldTags* game_account_tags) {
  delete game_account_tags_;
  game_account_tags_ = game_account_tags;
  if (game_account_tags) {
    set_has_game_account_tags();
  } else {
    clear_has_game_account_tags();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.GameAccountStateTagged.game_account_tags)
}

// -------------------------------------------------------------------

// AuthorizedData

// optional string data = 1;
inline bool AuthorizedData::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AuthorizedData::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AuthorizedData::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AuthorizedData::clear_data() {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_->clear();
  }
  clear_has_data();
}
inline const ::std::string& AuthorizedData::data() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthorizedData.data)
  return *data_;
}
inline void AuthorizedData::set_data(const ::std::string& value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthorizedData.data)
}
inline void AuthorizedData::set_data(const char* value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AuthorizedData.data)
}
inline void AuthorizedData::set_data(const char* value, size_t size) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AuthorizedData.data)
}
inline ::std::string* AuthorizedData::mutable_data() {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AuthorizedData.data)
  return data_;
}
inline ::std::string* AuthorizedData::release_data() {
  clear_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = data_;
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AuthorizedData::set_allocated_data(::std::string* data) {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete data_;
  }
  if (data) {
    set_has_data();
    data_ = data;
  } else {
    clear_has_data();
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AuthorizedData.data)
}

// repeated uint32 license = 2;
inline int AuthorizedData::license_size() const {
  return license_.size();
}
inline void AuthorizedData::clear_license() {
  license_.Clear();
}
inline ::google::protobuf::uint32 AuthorizedData::license(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthorizedData.license)
  return license_.Get(index);
}
inline void AuthorizedData::set_license(int index, ::google::protobuf::uint32 value) {
  license_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthorizedData.license)
}
inline void AuthorizedData::add_license(::google::protobuf::uint32 value) {
  license_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.account.v1.AuthorizedData.license)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
AuthorizedData::license() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.account.v1.AuthorizedData.license)
  return license_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
AuthorizedData::mutable_license() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.account.v1.AuthorizedData.license)
  return &license_;
}

// -------------------------------------------------------------------

// BenefactorAddress

// optional uint32 region = 1;
inline bool BenefactorAddress::has_region() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BenefactorAddress::set_has_region() {
  _has_bits_[0] |= 0x00000001u;
}
inline void BenefactorAddress::clear_has_region() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void BenefactorAddress::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 BenefactorAddress::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.BenefactorAddress.region)
  return region_;
}
inline void BenefactorAddress::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.BenefactorAddress.region)
}

// optional string igr_address = 2;
inline bool BenefactorAddress::has_igr_address() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void BenefactorAddress::set_has_igr_address() {
  _has_bits_[0] |= 0x00000002u;
}
inline void BenefactorAddress::clear_has_igr_address() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void BenefactorAddress::clear_igr_address() {
  if (igr_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_->clear();
  }
  clear_has_igr_address();
}
inline const ::std::string& BenefactorAddress::igr_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.BenefactorAddress.igr_address)
  return *igr_address_;
}
inline void BenefactorAddress::set_igr_address(const ::std::string& value) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.BenefactorAddress.igr_address)
}
inline void BenefactorAddress::set_igr_address(const char* value) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.BenefactorAddress.igr_address)
}
inline void BenefactorAddress::set_igr_address(const char* value, size_t size) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.BenefactorAddress.igr_address)
}
inline ::std::string* BenefactorAddress::mutable_igr_address() {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.BenefactorAddress.igr_address)
  return igr_address_;
}
inline ::std::string* BenefactorAddress::release_igr_address() {
  clear_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = igr_address_;
    igr_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BenefactorAddress::set_allocated_igr_address(::std::string* igr_address) {
  if (igr_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete igr_address_;
  }
  if (igr_address) {
    set_has_igr_address();
    igr_address_ = igr_address;
  } else {
    clear_has_igr_address();
    igr_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.BenefactorAddress.igr_address)
}

// -------------------------------------------------------------------

// ExternalBenefactorLookup

// optional fixed32 benefactor_id = 1;
inline bool ExternalBenefactorLookup::has_benefactor_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ExternalBenefactorLookup::set_has_benefactor_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ExternalBenefactorLookup::clear_has_benefactor_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ExternalBenefactorLookup::clear_benefactor_id() {
  benefactor_id_ = 0u;
  clear_has_benefactor_id();
}
inline ::google::protobuf::uint32 ExternalBenefactorLookup::benefactor_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ExternalBenefactorLookup.benefactor_id)
  return benefactor_id_;
}
inline void ExternalBenefactorLookup::set_benefactor_id(::google::protobuf::uint32 value) {
  set_has_benefactor_id();
  benefactor_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ExternalBenefactorLookup.benefactor_id)
}

// optional uint32 region = 2;
inline bool ExternalBenefactorLookup::has_region() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ExternalBenefactorLookup::set_has_region() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ExternalBenefactorLookup::clear_has_region() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ExternalBenefactorLookup::clear_region() {
  region_ = 0u;
  clear_has_region();
}
inline ::google::protobuf::uint32 ExternalBenefactorLookup::region() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ExternalBenefactorLookup.region)
  return region_;
}
inline void ExternalBenefactorLookup::set_region(::google::protobuf::uint32 value) {
  set_has_region();
  region_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ExternalBenefactorLookup.region)
}

// -------------------------------------------------------------------

// AuthBenefactor

// optional string igr_address = 1;
inline bool AuthBenefactor::has_igr_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AuthBenefactor::set_has_igr_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AuthBenefactor::clear_has_igr_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AuthBenefactor::clear_igr_address() {
  if (igr_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_->clear();
  }
  clear_has_igr_address();
}
inline const ::std::string& AuthBenefactor::igr_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthBenefactor.igr_address)
  return *igr_address_;
}
inline void AuthBenefactor::set_igr_address(const ::std::string& value) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthBenefactor.igr_address)
}
inline void AuthBenefactor::set_igr_address(const char* value) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.AuthBenefactor.igr_address)
}
inline void AuthBenefactor::set_igr_address(const char* value, size_t size) {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  igr_address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.AuthBenefactor.igr_address)
}
inline ::std::string* AuthBenefactor::mutable_igr_address() {
  set_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    igr_address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.AuthBenefactor.igr_address)
  return igr_address_;
}
inline ::std::string* AuthBenefactor::release_igr_address() {
  clear_has_igr_address();
  if (igr_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = igr_address_;
    igr_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void AuthBenefactor::set_allocated_igr_address(::std::string* igr_address) {
  if (igr_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete igr_address_;
  }
  if (igr_address) {
    set_has_igr_address();
    igr_address_ = igr_address;
  } else {
    clear_has_igr_address();
    igr_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.AuthBenefactor.igr_address)
}

// optional fixed32 benefactor_id = 2;
inline bool AuthBenefactor::has_benefactor_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AuthBenefactor::set_has_benefactor_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AuthBenefactor::clear_has_benefactor_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AuthBenefactor::clear_benefactor_id() {
  benefactor_id_ = 0u;
  clear_has_benefactor_id();
}
inline ::google::protobuf::uint32 AuthBenefactor::benefactor_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthBenefactor.benefactor_id)
  return benefactor_id_;
}
inline void AuthBenefactor::set_benefactor_id(::google::protobuf::uint32 value) {
  set_has_benefactor_id();
  benefactor_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthBenefactor.benefactor_id)
}

// optional bool active = 3;
inline bool AuthBenefactor::has_active() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AuthBenefactor::set_has_active() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AuthBenefactor::clear_has_active() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AuthBenefactor::clear_active() {
  active_ = false;
  clear_has_active();
}
inline bool AuthBenefactor::active() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthBenefactor.active)
  return active_;
}
inline void AuthBenefactor::set_active(bool value) {
  set_has_active();
  active_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthBenefactor.active)
}

// optional uint64 last_update_time = 4;
inline bool AuthBenefactor::has_last_update_time() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void AuthBenefactor::set_has_last_update_time() {
  _has_bits_[0] |= 0x00000008u;
}
inline void AuthBenefactor::clear_has_last_update_time() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void AuthBenefactor::clear_last_update_time() {
  last_update_time_ = GOOGLE_ULONGLONG(0);
  clear_has_last_update_time();
}
inline ::google::protobuf::uint64 AuthBenefactor::last_update_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.AuthBenefactor.last_update_time)
  return last_update_time_;
}
inline void AuthBenefactor::set_last_update_time(::google::protobuf::uint64 value) {
  set_has_last_update_time();
  last_update_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.AuthBenefactor.last_update_time)
}

// -------------------------------------------------------------------

// ApplicationInfo

// optional fixed32 platform_id = 1;
inline bool ApplicationInfo::has_platform_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ApplicationInfo::set_has_platform_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ApplicationInfo::clear_has_platform_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ApplicationInfo::clear_platform_id() {
  platform_id_ = 0u;
  clear_has_platform_id();
}
inline ::google::protobuf::uint32 ApplicationInfo::platform_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ApplicationInfo.platform_id)
  return platform_id_;
}
inline void ApplicationInfo::set_platform_id(::google::protobuf::uint32 value) {
  set_has_platform_id();
  platform_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ApplicationInfo.platform_id)
}

// optional fixed32 locale = 2;
inline bool ApplicationInfo::has_locale() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ApplicationInfo::set_has_locale() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ApplicationInfo::clear_has_locale() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ApplicationInfo::clear_locale() {
  locale_ = 0u;
  clear_has_locale();
}
inline ::google::protobuf::uint32 ApplicationInfo::locale() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ApplicationInfo.locale)
  return locale_;
}
inline void ApplicationInfo::set_locale(::google::protobuf::uint32 value) {
  set_has_locale();
  locale_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ApplicationInfo.locale)
}

// optional int32 application_version = 3;
inline bool ApplicationInfo::has_application_version() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ApplicationInfo::set_has_application_version() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ApplicationInfo::clear_has_application_version() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ApplicationInfo::clear_application_version() {
  application_version_ = 0;
  clear_has_application_version();
}
inline ::google::protobuf::int32 ApplicationInfo::application_version() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.ApplicationInfo.application_version)
  return application_version_;
}
inline void ApplicationInfo::set_application_version(::google::protobuf::int32 value) {
  set_has_application_version();
  application_version_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.ApplicationInfo.application_version)
}

// -------------------------------------------------------------------

// DeductRecord

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool DeductRecord::has_game_account() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DeductRecord::set_has_game_account() {
  _has_bits_[0] |= 0x00000001u;
}
inline void DeductRecord::clear_has_game_account() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void DeductRecord::clear_game_account() {
  if (game_account_ != NULL) game_account_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_game_account();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& DeductRecord::game_account() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.game_account)
  return game_account_ != NULL ? *game_account_ : *default_instance_->game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* DeductRecord::mutable_game_account() {
  set_has_game_account();
  if (game_account_ == NULL) game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.DeductRecord.game_account)
  return game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* DeductRecord::release_game_account() {
  clear_has_game_account();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = game_account_;
  game_account_ = NULL;
  return temp;
}
inline void DeductRecord::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  delete game_account_;
  game_account_ = game_account;
  if (game_account) {
    set_has_game_account();
  } else {
    clear_has_game_account();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.DeductRecord.game_account)
}

// optional .bgs.protocol.account.v1.GameAccountHandle benefactor = 2;
inline bool DeductRecord::has_benefactor() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DeductRecord::set_has_benefactor() {
  _has_bits_[0] |= 0x00000002u;
}
inline void DeductRecord::clear_has_benefactor() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void DeductRecord::clear_benefactor() {
  if (benefactor_ != NULL) benefactor_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
  clear_has_benefactor();
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& DeductRecord::benefactor() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.benefactor)
  return benefactor_ != NULL ? *benefactor_ : *default_instance_->benefactor_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* DeductRecord::mutable_benefactor() {
  set_has_benefactor();
  if (benefactor_ == NULL) benefactor_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.DeductRecord.benefactor)
  return benefactor_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* DeductRecord::release_benefactor() {
  clear_has_benefactor();
  ::bgs::protocol::account::v1::GameAccountHandle* temp = benefactor_;
  benefactor_ = NULL;
  return temp;
}
inline void DeductRecord::set_allocated_benefactor(::bgs::protocol::account::v1::GameAccountHandle* benefactor) {
  delete benefactor_;
  benefactor_ = benefactor;
  if (benefactor) {
    set_has_benefactor();
  } else {
    clear_has_benefactor();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.DeductRecord.benefactor)
}

// optional uint64 start_time = 3;
inline bool DeductRecord::has_start_time() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void DeductRecord::set_has_start_time() {
  _has_bits_[0] |= 0x00000004u;
}
inline void DeductRecord::clear_has_start_time() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void DeductRecord::clear_start_time() {
  start_time_ = GOOGLE_ULONGLONG(0);
  clear_has_start_time();
}
inline ::google::protobuf::uint64 DeductRecord::start_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.start_time)
  return start_time_;
}
inline void DeductRecord::set_start_time(::google::protobuf::uint64 value) {
  set_has_start_time();
  start_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.DeductRecord.start_time)
}

// optional uint64 end_time = 4;
inline bool DeductRecord::has_end_time() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void DeductRecord::set_has_end_time() {
  _has_bits_[0] |= 0x00000008u;
}
inline void DeductRecord::clear_has_end_time() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void DeductRecord::clear_end_time() {
  end_time_ = GOOGLE_ULONGLONG(0);
  clear_has_end_time();
}
inline ::google::protobuf::uint64 DeductRecord::end_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.end_time)
  return end_time_;
}
inline void DeductRecord::set_end_time(::google::protobuf::uint64 value) {
  set_has_end_time();
  end_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.DeductRecord.end_time)
}

// optional string client_address = 5;
inline bool DeductRecord::has_client_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void DeductRecord::set_has_client_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void DeductRecord::clear_has_client_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void DeductRecord::clear_client_address() {
  if (client_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_->clear();
  }
  clear_has_client_address();
}
inline const ::std::string& DeductRecord::client_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.client_address)
  return *client_address_;
}
inline void DeductRecord::set_client_address(const ::std::string& value) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.DeductRecord.client_address)
}
inline void DeductRecord::set_client_address(const char* value) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.DeductRecord.client_address)
}
inline void DeductRecord::set_client_address(const char* value, size_t size) {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  client_address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.DeductRecord.client_address)
}
inline ::std::string* DeductRecord::mutable_client_address() {
  set_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.DeductRecord.client_address)
  return client_address_;
}
inline ::std::string* DeductRecord::release_client_address() {
  clear_has_client_address();
  if (client_address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = client_address_;
    client_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void DeductRecord::set_allocated_client_address(::std::string* client_address) {
  if (client_address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_address_;
  }
  if (client_address) {
    set_has_client_address();
    client_address_ = client_address;
  } else {
    clear_has_client_address();
    client_address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.DeductRecord.client_address)
}

// optional .bgs.protocol.account.v1.ApplicationInfo application_info = 6;
inline bool DeductRecord::has_application_info() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void DeductRecord::set_has_application_info() {
  _has_bits_[0] |= 0x00000020u;
}
inline void DeductRecord::clear_has_application_info() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void DeductRecord::clear_application_info() {
  if (application_info_ != NULL) application_info_->::bgs::protocol::account::v1::ApplicationInfo::Clear();
  clear_has_application_info();
}
inline const ::bgs::protocol::account::v1::ApplicationInfo& DeductRecord::application_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.application_info)
  return application_info_ != NULL ? *application_info_ : *default_instance_->application_info_;
}
inline ::bgs::protocol::account::v1::ApplicationInfo* DeductRecord::mutable_application_info() {
  set_has_application_info();
  if (application_info_ == NULL) application_info_ = new ::bgs::protocol::account::v1::ApplicationInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.DeductRecord.application_info)
  return application_info_;
}
inline ::bgs::protocol::account::v1::ApplicationInfo* DeductRecord::release_application_info() {
  clear_has_application_info();
  ::bgs::protocol::account::v1::ApplicationInfo* temp = application_info_;
  application_info_ = NULL;
  return temp;
}
inline void DeductRecord::set_allocated_application_info(::bgs::protocol::account::v1::ApplicationInfo* application_info) {
  delete application_info_;
  application_info_ = application_info;
  if (application_info) {
    set_has_application_info();
  } else {
    clear_has_application_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.DeductRecord.application_info)
}

// optional string session_owner = 7;
inline bool DeductRecord::has_session_owner() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void DeductRecord::set_has_session_owner() {
  _has_bits_[0] |= 0x00000040u;
}
inline void DeductRecord::clear_has_session_owner() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void DeductRecord::clear_session_owner() {
  if (session_owner_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_owner_->clear();
  }
  clear_has_session_owner();
}
inline const ::std::string& DeductRecord::session_owner() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.session_owner)
  return *session_owner_;
}
inline void DeductRecord::set_session_owner(const ::std::string& value) {
  set_has_session_owner();
  if (session_owner_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_owner_ = new ::std::string;
  }
  session_owner_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.DeductRecord.session_owner)
}
inline void DeductRecord::set_session_owner(const char* value) {
  set_has_session_owner();
  if (session_owner_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_owner_ = new ::std::string;
  }
  session_owner_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.account.v1.DeductRecord.session_owner)
}
inline void DeductRecord::set_session_owner(const char* value, size_t size) {
  set_has_session_owner();
  if (session_owner_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_owner_ = new ::std::string;
  }
  session_owner_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.account.v1.DeductRecord.session_owner)
}
inline ::std::string* DeductRecord::mutable_session_owner() {
  set_has_session_owner();
  if (session_owner_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_owner_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.account.v1.DeductRecord.session_owner)
  return session_owner_;
}
inline ::std::string* DeductRecord::release_session_owner() {
  clear_has_session_owner();
  if (session_owner_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = session_owner_;
    session_owner_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void DeductRecord::set_allocated_session_owner(::std::string* session_owner) {
  if (session_owner_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete session_owner_;
  }
  if (session_owner) {
    set_has_session_owner();
    session_owner_ = session_owner;
  } else {
    clear_has_session_owner();
    session_owner_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.account.v1.DeductRecord.session_owner)
}

// optional bool free_session = 8;
inline bool DeductRecord::has_free_session() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void DeductRecord::set_has_free_session() {
  _has_bits_[0] |= 0x00000080u;
}
inline void DeductRecord::clear_has_free_session() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void DeductRecord::clear_free_session() {
  free_session_ = false;
  clear_has_free_session();
}
inline bool DeductRecord::free_session() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.account.v1.DeductRecord.free_session)
  return free_session_;
}
inline void DeductRecord::set_free_session(bool value) {
  set_has_free_session();
  free_session_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.account.v1.DeductRecord.free_session)
}

// -------------------------------------------------------------------

// IgrId

// optional .bgs.protocol.account.v1.GameAccountHandle game_account = 1;
inline bool IgrId::has_game_account() const {
  return type_case() == kGameAccount;
}
inline void IgrId::set_has_game_account() {
  _oneof_case_[0] = kGameAccount;
}
inline void IgrId::clear_game_account() {
  if (has_game_account()) {
    delete type_.game_account_;
    clear_has_type();
  }
}
inline const ::bgs::protocol::account::v1::GameAccountHandle& IgrId::game_account() const {
  return has_game_account() ? *type_.game_account_
                      : ::bgs::protocol::account::v1::GameAccountHandle::default_instance();
}
inline ::bgs::protocol::account::v1::GameAccountHandle* IgrId::mutable_game_account() {
  if (!has_game_account()) {
    clear_type();
    set_has_game_account();
    type_.game_account_ = new ::bgs::protocol::account::v1::GameAccountHandle;
  }
  return type_.game_account_;
}
inline ::bgs::protocol::account::v1::GameAccountHandle* IgrId::release_game_account() {
  if (has_game_account()) {
    clear_has_type();
    ::bgs::protocol::account::v1::GameAccountHandle* temp = type_.game_account_;
    type_.game_account_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline void IgrId::set_allocated_game_account(::bgs::protocol::account::v1::GameAccountHandle* game_account) {
  clear_type();
  if (game_account) {
    set_has_game_account();
    type_.game_account_ = game_account;
  }
}

// optional fixed32 external_id = 2;
inline bool IgrId::has_external_id() const {
  return type_case() == kExternalId;
}
inline void IgrId::set_has_external_id() {
  _oneof_case_[0] = kExternalId;
}
inline void IgrId::clear_external_id() {
  if (has_external_id()) {
    type_.external_id_ = 0u;
    clear_has_type();
  }
}
inline ::google::protobuf::uint32 IgrId::external_id() const {
  if (has_external_id()) {
    return type_.external_id_;
  }
  return 0u;
}
inline void IgrId::set_external_id(::google::protobuf::uint32 value) {
  if (!has_external_id()) {
    clear_type();
    set_has_external_id();
  }
  type_.external_id_ = value;
}

inline bool IgrId::has_type() {
  return type_case() != TYPE_NOT_SET;
}
inline void IgrId::clear_has_type() {
  _oneof_case_[0] = TYPE_NOT_SET;
}
inline IgrId::TypeCase IgrId::type_case() const {
  return IgrId::TypeCase(_oneof_case_[0]);
}

// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace account
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy>() {
  return ::bgs::protocol::account::v1::PrivacyInfo_GameInfoPrivacy_descriptor();
}
template <> struct is_proto_enum< ::bgs::protocol::account::v1::IdentityVerificationStatus> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::bgs::protocol::account::v1::IdentityVerificationStatus>() {
  return ::bgs::protocol::account::v1::IdentityVerificationStatus_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_account_5ftypes_2eproto__INCLUDED
