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

#ifndef GOOGLE_PROTOBUF_INCLUDED_quote_2fapi_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_quote_2fapi_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3020000
#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 3020001 < 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/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_bases.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_quote_2fapi_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_quote_2fapi_2eproto {
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_quote_2fapi_2eproto;
namespace longbridge {
namespace quote {
namespace v1 {
class Brokers;
struct BrokersDefaultTypeInternal;
extern BrokersDefaultTypeInternal _Brokers_default_instance_;
class Candlestick;
struct CandlestickDefaultTypeInternal;
extern CandlestickDefaultTypeInternal _Candlestick_default_instance_;
class CapitalDistributionResponse;
struct CapitalDistributionResponseDefaultTypeInternal;
extern CapitalDistributionResponseDefaultTypeInternal _CapitalDistributionResponse_default_instance_;
class CapitalDistributionResponse_CapitalDistribution;
struct CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal;
extern CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal _CapitalDistributionResponse_CapitalDistribution_default_instance_;
class CapitalFlowIntradayRequest;
struct CapitalFlowIntradayRequestDefaultTypeInternal;
extern CapitalFlowIntradayRequestDefaultTypeInternal _CapitalFlowIntradayRequest_default_instance_;
class CapitalFlowIntradayResponse;
struct CapitalFlowIntradayResponseDefaultTypeInternal;
extern CapitalFlowIntradayResponseDefaultTypeInternal _CapitalFlowIntradayResponse_default_instance_;
class CapitalFlowIntradayResponse_CapitalFlowLine;
struct CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal;
extern CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal _CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_;
class Depth;
struct DepthDefaultTypeInternal;
extern DepthDefaultTypeInternal _Depth_default_instance_;
class FilterConfig;
struct FilterConfigDefaultTypeInternal;
extern FilterConfigDefaultTypeInternal _FilterConfig_default_instance_;
class FilterWarrant;
struct FilterWarrantDefaultTypeInternal;
extern FilterWarrantDefaultTypeInternal _FilterWarrant_default_instance_;
class IssuerInfo;
struct IssuerInfoDefaultTypeInternal;
extern IssuerInfoDefaultTypeInternal _IssuerInfo_default_instance_;
class IssuerInfoResponse;
struct IssuerInfoResponseDefaultTypeInternal;
extern IssuerInfoResponseDefaultTypeInternal _IssuerInfoResponse_default_instance_;
class Line;
struct LineDefaultTypeInternal;
extern LineDefaultTypeInternal _Line_default_instance_;
class MarketTradeDayRequest;
struct MarketTradeDayRequestDefaultTypeInternal;
extern MarketTradeDayRequestDefaultTypeInternal _MarketTradeDayRequest_default_instance_;
class MarketTradeDayResponse;
struct MarketTradeDayResponseDefaultTypeInternal;
extern MarketTradeDayResponseDefaultTypeInternal _MarketTradeDayResponse_default_instance_;
class MarketTradePeriod;
struct MarketTradePeriodDefaultTypeInternal;
extern MarketTradePeriodDefaultTypeInternal _MarketTradePeriod_default_instance_;
class MarketTradePeriodResponse;
struct MarketTradePeriodResponseDefaultTypeInternal;
extern MarketTradePeriodResponseDefaultTypeInternal _MarketTradePeriodResponse_default_instance_;
class MultiSecurityRequest;
struct MultiSecurityRequestDefaultTypeInternal;
extern MultiSecurityRequestDefaultTypeInternal _MultiSecurityRequest_default_instance_;
class OptionChainDateListResponse;
struct OptionChainDateListResponseDefaultTypeInternal;
extern OptionChainDateListResponseDefaultTypeInternal _OptionChainDateListResponse_default_instance_;
class OptionChainDateStrikeInfoRequest;
struct OptionChainDateStrikeInfoRequestDefaultTypeInternal;
extern OptionChainDateStrikeInfoRequestDefaultTypeInternal _OptionChainDateStrikeInfoRequest_default_instance_;
class OptionChainDateStrikeInfoResponse;
struct OptionChainDateStrikeInfoResponseDefaultTypeInternal;
extern OptionChainDateStrikeInfoResponseDefaultTypeInternal _OptionChainDateStrikeInfoResponse_default_instance_;
class OptionExtend;
struct OptionExtendDefaultTypeInternal;
extern OptionExtendDefaultTypeInternal _OptionExtend_default_instance_;
class OptionQuote;
struct OptionQuoteDefaultTypeInternal;
extern OptionQuoteDefaultTypeInternal _OptionQuote_default_instance_;
class OptionQuoteResponse;
struct OptionQuoteResponseDefaultTypeInternal;
extern OptionQuoteResponseDefaultTypeInternal _OptionQuoteResponse_default_instance_;
class ParticipantBrokerIdsResponse;
struct ParticipantBrokerIdsResponseDefaultTypeInternal;
extern ParticipantBrokerIdsResponseDefaultTypeInternal _ParticipantBrokerIdsResponse_default_instance_;
class ParticipantInfo;
struct ParticipantInfoDefaultTypeInternal;
extern ParticipantInfoDefaultTypeInternal _ParticipantInfo_default_instance_;
class PrePostQuote;
struct PrePostQuoteDefaultTypeInternal;
extern PrePostQuoteDefaultTypeInternal _PrePostQuote_default_instance_;
class PushBrokers;
struct PushBrokersDefaultTypeInternal;
extern PushBrokersDefaultTypeInternal _PushBrokers_default_instance_;
class PushDepth;
struct PushDepthDefaultTypeInternal;
extern PushDepthDefaultTypeInternal _PushDepth_default_instance_;
class PushQuote;
struct PushQuoteDefaultTypeInternal;
extern PushQuoteDefaultTypeInternal _PushQuote_default_instance_;
class PushTrade;
struct PushTradeDefaultTypeInternal;
extern PushTradeDefaultTypeInternal _PushTrade_default_instance_;
class RateLimit;
struct RateLimitDefaultTypeInternal;
extern RateLimitDefaultTypeInternal _RateLimit_default_instance_;
class SecurityBrokersResponse;
struct SecurityBrokersResponseDefaultTypeInternal;
extern SecurityBrokersResponseDefaultTypeInternal _SecurityBrokersResponse_default_instance_;
class SecurityCalcIndex;
struct SecurityCalcIndexDefaultTypeInternal;
extern SecurityCalcIndexDefaultTypeInternal _SecurityCalcIndex_default_instance_;
class SecurityCalcQuoteRequest;
struct SecurityCalcQuoteRequestDefaultTypeInternal;
extern SecurityCalcQuoteRequestDefaultTypeInternal _SecurityCalcQuoteRequest_default_instance_;
class SecurityCalcQuoteResponse;
struct SecurityCalcQuoteResponseDefaultTypeInternal;
extern SecurityCalcQuoteResponseDefaultTypeInternal _SecurityCalcQuoteResponse_default_instance_;
class SecurityCandlestickRequest;
struct SecurityCandlestickRequestDefaultTypeInternal;
extern SecurityCandlestickRequestDefaultTypeInternal _SecurityCandlestickRequest_default_instance_;
class SecurityCandlestickResponse;
struct SecurityCandlestickResponseDefaultTypeInternal;
extern SecurityCandlestickResponseDefaultTypeInternal _SecurityCandlestickResponse_default_instance_;
class SecurityDepthResponse;
struct SecurityDepthResponseDefaultTypeInternal;
extern SecurityDepthResponseDefaultTypeInternal _SecurityDepthResponse_default_instance_;
class SecurityHistoryCandlestickRequest;
struct SecurityHistoryCandlestickRequestDefaultTypeInternal;
extern SecurityHistoryCandlestickRequestDefaultTypeInternal _SecurityHistoryCandlestickRequest_default_instance_;
class SecurityHistoryCandlestickRequest_DateQuery;
struct SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal;
extern SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal _SecurityHistoryCandlestickRequest_DateQuery_default_instance_;
class SecurityHistoryCandlestickRequest_OffsetQuery;
struct SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal;
extern SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal _SecurityHistoryCandlestickRequest_OffsetQuery_default_instance_;
class SecurityIntradayRequest;
struct SecurityIntradayRequestDefaultTypeInternal;
extern SecurityIntradayRequestDefaultTypeInternal _SecurityIntradayRequest_default_instance_;
class SecurityIntradayResponse;
struct SecurityIntradayResponseDefaultTypeInternal;
extern SecurityIntradayResponseDefaultTypeInternal _SecurityIntradayResponse_default_instance_;
class SecurityQuote;
struct SecurityQuoteDefaultTypeInternal;
extern SecurityQuoteDefaultTypeInternal _SecurityQuote_default_instance_;
class SecurityQuoteResponse;
struct SecurityQuoteResponseDefaultTypeInternal;
extern SecurityQuoteResponseDefaultTypeInternal _SecurityQuoteResponse_default_instance_;
class SecurityRequest;
struct SecurityRequestDefaultTypeInternal;
extern SecurityRequestDefaultTypeInternal _SecurityRequest_default_instance_;
class SecurityStaticInfoResponse;
struct SecurityStaticInfoResponseDefaultTypeInternal;
extern SecurityStaticInfoResponseDefaultTypeInternal _SecurityStaticInfoResponse_default_instance_;
class SecurityTradeRequest;
struct SecurityTradeRequestDefaultTypeInternal;
extern SecurityTradeRequestDefaultTypeInternal _SecurityTradeRequest_default_instance_;
class SecurityTradeResponse;
struct SecurityTradeResponseDefaultTypeInternal;
extern SecurityTradeResponseDefaultTypeInternal _SecurityTradeResponse_default_instance_;
class StaticInfo;
struct StaticInfoDefaultTypeInternal;
extern StaticInfoDefaultTypeInternal _StaticInfo_default_instance_;
class StrikePriceInfo;
struct StrikePriceInfoDefaultTypeInternal;
extern StrikePriceInfoDefaultTypeInternal _StrikePriceInfo_default_instance_;
class SubTypeList;
struct SubTypeListDefaultTypeInternal;
extern SubTypeListDefaultTypeInternal _SubTypeList_default_instance_;
class SubscribeRequest;
struct SubscribeRequestDefaultTypeInternal;
extern SubscribeRequestDefaultTypeInternal _SubscribeRequest_default_instance_;
class SubscriptionRequest;
struct SubscriptionRequestDefaultTypeInternal;
extern SubscriptionRequestDefaultTypeInternal _SubscriptionRequest_default_instance_;
class SubscriptionResponse;
struct SubscriptionResponseDefaultTypeInternal;
extern SubscriptionResponseDefaultTypeInternal _SubscriptionResponse_default_instance_;
class Trade;
struct TradeDefaultTypeInternal;
extern TradeDefaultTypeInternal _Trade_default_instance_;
class TradePeriod;
struct TradePeriodDefaultTypeInternal;
extern TradePeriodDefaultTypeInternal _TradePeriod_default_instance_;
class UnsubscribeRequest;
struct UnsubscribeRequestDefaultTypeInternal;
extern UnsubscribeRequestDefaultTypeInternal _UnsubscribeRequest_default_instance_;
class UnsubscribeResponse;
struct UnsubscribeResponseDefaultTypeInternal;
extern UnsubscribeResponseDefaultTypeInternal _UnsubscribeResponse_default_instance_;
class UserQuoteLevelDetail;
struct UserQuoteLevelDetailDefaultTypeInternal;
extern UserQuoteLevelDetailDefaultTypeInternal _UserQuoteLevelDetail_default_instance_;
class UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse;
struct UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal;
extern UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal _UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse_default_instance_;
class UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse;
struct UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal;
extern UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal _UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse_default_instance_;
class UserQuoteLevelDetail_MarketPackageDetail;
struct UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal;
extern UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal _UserQuoteLevelDetail_MarketPackageDetail_default_instance_;
class UserQuoteLevelDetail_PackageDetail;
struct UserQuoteLevelDetail_PackageDetailDefaultTypeInternal;
extern UserQuoteLevelDetail_PackageDetailDefaultTypeInternal _UserQuoteLevelDetail_PackageDetail_default_instance_;
class UserQuoteProfileRequest;
struct UserQuoteProfileRequestDefaultTypeInternal;
extern UserQuoteProfileRequestDefaultTypeInternal _UserQuoteProfileRequest_default_instance_;
class UserQuoteProfileResponse;
struct UserQuoteProfileResponseDefaultTypeInternal;
extern UserQuoteProfileResponseDefaultTypeInternal _UserQuoteProfileResponse_default_instance_;
class WarrantExtend;
struct WarrantExtendDefaultTypeInternal;
extern WarrantExtendDefaultTypeInternal _WarrantExtend_default_instance_;
class WarrantFilterListRequest;
struct WarrantFilterListRequestDefaultTypeInternal;
extern WarrantFilterListRequestDefaultTypeInternal _WarrantFilterListRequest_default_instance_;
class WarrantFilterListResponse;
struct WarrantFilterListResponseDefaultTypeInternal;
extern WarrantFilterListResponseDefaultTypeInternal _WarrantFilterListResponse_default_instance_;
class WarrantQuote;
struct WarrantQuoteDefaultTypeInternal;
extern WarrantQuoteDefaultTypeInternal _WarrantQuote_default_instance_;
class WarrantQuoteResponse;
struct WarrantQuoteResponseDefaultTypeInternal;
extern WarrantQuoteResponseDefaultTypeInternal _WarrantQuoteResponse_default_instance_;
}  // namespace v1
}  // namespace quote
}  // namespace longbridge
PROTOBUF_NAMESPACE_OPEN
template<> ::longbridge::quote::v1::Brokers* Arena::CreateMaybeMessage<::longbridge::quote::v1::Brokers>(Arena*);
template<> ::longbridge::quote::v1::Candlestick* Arena::CreateMaybeMessage<::longbridge::quote::v1::Candlestick>(Arena*);
template<> ::longbridge::quote::v1::CapitalDistributionResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::CapitalDistributionResponse>(Arena*);
template<> ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* Arena::CreateMaybeMessage<::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution>(Arena*);
template<> ::longbridge::quote::v1::CapitalFlowIntradayRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::CapitalFlowIntradayRequest>(Arena*);
template<> ::longbridge::quote::v1::CapitalFlowIntradayResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::CapitalFlowIntradayResponse>(Arena*);
template<> ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* Arena::CreateMaybeMessage<::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine>(Arena*);
template<> ::longbridge::quote::v1::Depth* Arena::CreateMaybeMessage<::longbridge::quote::v1::Depth>(Arena*);
template<> ::longbridge::quote::v1::FilterConfig* Arena::CreateMaybeMessage<::longbridge::quote::v1::FilterConfig>(Arena*);
template<> ::longbridge::quote::v1::FilterWarrant* Arena::CreateMaybeMessage<::longbridge::quote::v1::FilterWarrant>(Arena*);
template<> ::longbridge::quote::v1::IssuerInfo* Arena::CreateMaybeMessage<::longbridge::quote::v1::IssuerInfo>(Arena*);
template<> ::longbridge::quote::v1::IssuerInfoResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::IssuerInfoResponse>(Arena*);
template<> ::longbridge::quote::v1::Line* Arena::CreateMaybeMessage<::longbridge::quote::v1::Line>(Arena*);
template<> ::longbridge::quote::v1::MarketTradeDayRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::MarketTradeDayRequest>(Arena*);
template<> ::longbridge::quote::v1::MarketTradeDayResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::MarketTradeDayResponse>(Arena*);
template<> ::longbridge::quote::v1::MarketTradePeriod* Arena::CreateMaybeMessage<::longbridge::quote::v1::MarketTradePeriod>(Arena*);
template<> ::longbridge::quote::v1::MarketTradePeriodResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::MarketTradePeriodResponse>(Arena*);
template<> ::longbridge::quote::v1::MultiSecurityRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::MultiSecurityRequest>(Arena*);
template<> ::longbridge::quote::v1::OptionChainDateListResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionChainDateListResponse>(Arena*);
template<> ::longbridge::quote::v1::OptionChainDateStrikeInfoRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionChainDateStrikeInfoRequest>(Arena*);
template<> ::longbridge::quote::v1::OptionChainDateStrikeInfoResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionChainDateStrikeInfoResponse>(Arena*);
template<> ::longbridge::quote::v1::OptionExtend* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionExtend>(Arena*);
template<> ::longbridge::quote::v1::OptionQuote* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionQuote>(Arena*);
template<> ::longbridge::quote::v1::OptionQuoteResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::OptionQuoteResponse>(Arena*);
template<> ::longbridge::quote::v1::ParticipantBrokerIdsResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::ParticipantBrokerIdsResponse>(Arena*);
template<> ::longbridge::quote::v1::ParticipantInfo* Arena::CreateMaybeMessage<::longbridge::quote::v1::ParticipantInfo>(Arena*);
template<> ::longbridge::quote::v1::PrePostQuote* Arena::CreateMaybeMessage<::longbridge::quote::v1::PrePostQuote>(Arena*);
template<> ::longbridge::quote::v1::PushBrokers* Arena::CreateMaybeMessage<::longbridge::quote::v1::PushBrokers>(Arena*);
template<> ::longbridge::quote::v1::PushDepth* Arena::CreateMaybeMessage<::longbridge::quote::v1::PushDepth>(Arena*);
template<> ::longbridge::quote::v1::PushQuote* Arena::CreateMaybeMessage<::longbridge::quote::v1::PushQuote>(Arena*);
template<> ::longbridge::quote::v1::PushTrade* Arena::CreateMaybeMessage<::longbridge::quote::v1::PushTrade>(Arena*);
template<> ::longbridge::quote::v1::RateLimit* Arena::CreateMaybeMessage<::longbridge::quote::v1::RateLimit>(Arena*);
template<> ::longbridge::quote::v1::SecurityBrokersResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityBrokersResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityCalcIndex* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityCalcIndex>(Arena*);
template<> ::longbridge::quote::v1::SecurityCalcQuoteRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityCalcQuoteRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityCalcQuoteResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityCalcQuoteResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityCandlestickRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityCandlestickRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityCandlestickResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityCandlestickResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityDepthResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityDepthResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityHistoryCandlestickRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityHistoryCandlestickRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery>(Arena*);
template<> ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery>(Arena*);
template<> ::longbridge::quote::v1::SecurityIntradayRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityIntradayRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityIntradayResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityIntradayResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityQuote* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityQuote>(Arena*);
template<> ::longbridge::quote::v1::SecurityQuoteResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityQuoteResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityStaticInfoResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityStaticInfoResponse>(Arena*);
template<> ::longbridge::quote::v1::SecurityTradeRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityTradeRequest>(Arena*);
template<> ::longbridge::quote::v1::SecurityTradeResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SecurityTradeResponse>(Arena*);
template<> ::longbridge::quote::v1::StaticInfo* Arena::CreateMaybeMessage<::longbridge::quote::v1::StaticInfo>(Arena*);
template<> ::longbridge::quote::v1::StrikePriceInfo* Arena::CreateMaybeMessage<::longbridge::quote::v1::StrikePriceInfo>(Arena*);
template<> ::longbridge::quote::v1::SubTypeList* Arena::CreateMaybeMessage<::longbridge::quote::v1::SubTypeList>(Arena*);
template<> ::longbridge::quote::v1::SubscribeRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SubscribeRequest>(Arena*);
template<> ::longbridge::quote::v1::SubscriptionRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::SubscriptionRequest>(Arena*);
template<> ::longbridge::quote::v1::SubscriptionResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::SubscriptionResponse>(Arena*);
template<> ::longbridge::quote::v1::Trade* Arena::CreateMaybeMessage<::longbridge::quote::v1::Trade>(Arena*);
template<> ::longbridge::quote::v1::TradePeriod* Arena::CreateMaybeMessage<::longbridge::quote::v1::TradePeriod>(Arena*);
template<> ::longbridge::quote::v1::UnsubscribeRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::UnsubscribeRequest>(Arena*);
template<> ::longbridge::quote::v1::UnsubscribeResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::UnsubscribeResponse>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteLevelDetail* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteProfileRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteProfileRequest>(Arena*);
template<> ::longbridge::quote::v1::UserQuoteProfileResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::UserQuoteProfileResponse>(Arena*);
template<> ::longbridge::quote::v1::WarrantExtend* Arena::CreateMaybeMessage<::longbridge::quote::v1::WarrantExtend>(Arena*);
template<> ::longbridge::quote::v1::WarrantFilterListRequest* Arena::CreateMaybeMessage<::longbridge::quote::v1::WarrantFilterListRequest>(Arena*);
template<> ::longbridge::quote::v1::WarrantFilterListResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::WarrantFilterListResponse>(Arena*);
template<> ::longbridge::quote::v1::WarrantQuote* Arena::CreateMaybeMessage<::longbridge::quote::v1::WarrantQuote>(Arena*);
template<> ::longbridge::quote::v1::WarrantQuoteResponse* Arena::CreateMaybeMessage<::longbridge::quote::v1::WarrantQuoteResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace longbridge {
namespace quote {
namespace v1 {

enum Command : int {
  UNKNOWN_COMMAND = 0,
  HEART_BEAT = 1,
  AUTH = 2,
  RECONNECT = 3,
  QueryUserQuoteProfile = 4,
  Subscription = 5,
  Subscribe = 6,
  Unsubscribe = 7,
  QueryMarketTradePeriod = 8,
  QueryMarketTradeDay = 9,
  QuerySecurityStaticInfo = 10,
  QuerySecurityQuote = 11,
  QueryOptionQuote = 12,
  QueryWarrantQuote = 13,
  QueryDepth = 14,
  QueryBrokers = 15,
  QueryParticipantBrokerIds = 16,
  QueryTrade = 17,
  QueryIntraday = 18,
  QueryCandlestick = 19,
  QueryOptionChainDate = 20,
  QueryOptionChainDateStrikeInfo = 21,
  QueryWarrantIssuerInfo = 22,
  QueryWarrantFilterList = 23,
  QueryCapitalFlowIntraday = 24,
  QueryCapitalFlowDistribution = 25,
  QuerySecurityCalcIndex = 26,
  QueryHistoryCandlestick = 27,
  PushQuoteData = 101,
  PushDepthData = 102,
  PushBrokersData = 103,
  PushTradeData = 104,
  Command_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  Command_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool Command_IsValid(int value);
constexpr Command Command_MIN = UNKNOWN_COMMAND;
constexpr Command Command_MAX = PushTradeData;
constexpr int Command_ARRAYSIZE = Command_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Command_descriptor();
template<typename T>
inline const std::string& Command_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Command>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Command_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Command_descriptor(), enum_t_value);
}
inline bool Command_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Command* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Command>(
    Command_descriptor(), name, value);
}
enum TradeStatus : int {
  NORMAL = 0,
  HALTED = 1,
  DELISTED = 2,
  FUSE = 3,
  PREPARE_LIST = 4,
  CODE_MOVED = 5,
  TO_BE_OPENED = 6,
  SPLIT_STOCK_HALTS = 7,
  EXPIRED = 8,
  WARRANT_PREPARE_LIST = 9,
  SUSPEND_TRADE = 10,
  TradeStatus_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  TradeStatus_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool TradeStatus_IsValid(int value);
constexpr TradeStatus TradeStatus_MIN = NORMAL;
constexpr TradeStatus TradeStatus_MAX = SUSPEND_TRADE;
constexpr int TradeStatus_ARRAYSIZE = TradeStatus_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeStatus_descriptor();
template<typename T>
inline const std::string& TradeStatus_Name(T enum_t_value) {
  static_assert(::std::is_same<T, TradeStatus>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function TradeStatus_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    TradeStatus_descriptor(), enum_t_value);
}
inline bool TradeStatus_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, TradeStatus* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TradeStatus>(
    TradeStatus_descriptor(), name, value);
}
enum TradeSession : int {
  NORMAL_TRADE = 0,
  PRE_TRADE = 1,
  POST_TRADE = 2,
  OVERNIGHT_TRADE = 3,
  TradeSession_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  TradeSession_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool TradeSession_IsValid(int value);
constexpr TradeSession TradeSession_MIN = NORMAL_TRADE;
constexpr TradeSession TradeSession_MAX = OVERNIGHT_TRADE;
constexpr int TradeSession_ARRAYSIZE = TradeSession_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeSession_descriptor();
template<typename T>
inline const std::string& TradeSession_Name(T enum_t_value) {
  static_assert(::std::is_same<T, TradeSession>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function TradeSession_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    TradeSession_descriptor(), enum_t_value);
}
inline bool TradeSession_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, TradeSession* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TradeSession>(
    TradeSession_descriptor(), name, value);
}
enum AdjustType : int {
  NO_ADJUST = 0,
  FORWARD_ADJUST = 1,
  AdjustType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  AdjustType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool AdjustType_IsValid(int value);
constexpr AdjustType AdjustType_MIN = NO_ADJUST;
constexpr AdjustType AdjustType_MAX = FORWARD_ADJUST;
constexpr int AdjustType_ARRAYSIZE = AdjustType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AdjustType_descriptor();
template<typename T>
inline const std::string& AdjustType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AdjustType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AdjustType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    AdjustType_descriptor(), enum_t_value);
}
inline bool AdjustType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, AdjustType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AdjustType>(
    AdjustType_descriptor(), name, value);
}
enum Period : int {
  UNKNOWN_PERIOD = 0,
  ONE_MINUTE = 1,
  TWO_MINUTE = 2,
  THREE_MINUTE = 3,
  FIVE_MINUTE = 5,
  TEN_MINUTE = 10,
  FIFTEEN_MINUTE = 15,
  TWENTY_MINUTE = 20,
  THIRTY_MINUTE = 30,
  FORTY_FIVE_MINUTE = 45,
  SIXTY_MINUTE = 60,
  TWO_HOUR = 120,
  THREE_HOUR = 180,
  FOUR_HOUR = 240,
  DAY = 1000,
  WEEK = 2000,
  MONTH = 3000,
  QUARTER = 3500,
  YEAR = 4000,
  Period_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  Period_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool Period_IsValid(int value);
constexpr Period Period_MIN = UNKNOWN_PERIOD;
constexpr Period Period_MAX = YEAR;
constexpr int Period_ARRAYSIZE = Period_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Period_descriptor();
template<typename T>
inline const std::string& Period_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Period>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Period_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Period_descriptor(), enum_t_value);
}
inline bool Period_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Period* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Period>(
    Period_descriptor(), name, value);
}
enum SubType : int {
  UNKNOWN_TYPE = 0,
  QUOTE = 1,
  DEPTH = 2,
  BROKERS = 3,
  TRADE = 4,
  SubType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  SubType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool SubType_IsValid(int value);
constexpr SubType SubType_MIN = UNKNOWN_TYPE;
constexpr SubType SubType_MAX = TRADE;
constexpr int SubType_ARRAYSIZE = SubType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SubType_descriptor();
template<typename T>
inline const std::string& SubType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, SubType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function SubType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    SubType_descriptor(), enum_t_value);
}
inline bool SubType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, SubType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<SubType>(
    SubType_descriptor(), name, value);
}
enum PushQuoteTag : int {
  Normal = 0,
  Eod = 1,
  PushQuoteTag_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  PushQuoteTag_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool PushQuoteTag_IsValid(int value);
constexpr PushQuoteTag PushQuoteTag_MIN = Normal;
constexpr PushQuoteTag PushQuoteTag_MAX = Eod;
constexpr int PushQuoteTag_ARRAYSIZE = PushQuoteTag_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PushQuoteTag_descriptor();
template<typename T>
inline const std::string& PushQuoteTag_Name(T enum_t_value) {
  static_assert(::std::is_same<T, PushQuoteTag>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function PushQuoteTag_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    PushQuoteTag_descriptor(), enum_t_value);
}
inline bool PushQuoteTag_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PushQuoteTag* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<PushQuoteTag>(
    PushQuoteTag_descriptor(), name, value);
}
enum CalcIndex : int {
  CALCINDEX_UNKNOWN = 0,
  CALCINDEX_LAST_DONE = 1,
  CALCINDEX_CHANGE_VAL = 2,
  CALCINDEX_CHANGE_RATE = 3,
  CALCINDEX_VOLUME = 4,
  CALCINDEX_TURNOVER = 5,
  CALCINDEX_YTD_CHANGE_RATE = 6,
  CALCINDEX_TURNOVER_RATE = 7,
  CALCINDEX_TOTAL_MARKET_VALUE = 8,
  CALCINDEX_CAPITAL_FLOW = 9,
  CALCINDEX_AMPLITUDE = 10,
  CALCINDEX_VOLUME_RATIO = 11,
  CALCINDEX_PE_TTM_RATIO = 12,
  CALCINDEX_PB_RATIO = 13,
  CALCINDEX_DIVIDEND_RATIO_TTM = 14,
  CALCINDEX_FIVE_DAY_CHANGE_RATE = 15,
  CALCINDEX_TEN_DAY_CHANGE_RATE = 16,
  CALCINDEX_HALF_YEAR_CHANGE_RATE = 17,
  CALCINDEX_FIVE_MINUTES_CHANGE_RATE = 18,
  CALCINDEX_EXPIRY_DATE = 19,
  CALCINDEX_STRIKE_PRICE = 20,
  CALCINDEX_UPPER_STRIKE_PRICE = 21,
  CALCINDEX_LOWER_STRIKE_PRICE = 22,
  CALCINDEX_OUTSTANDING_QTY = 23,
  CALCINDEX_OUTSTANDING_RATIO = 24,
  CALCINDEX_PREMIUM = 25,
  CALCINDEX_ITM_OTM = 26,
  CALCINDEX_IMPLIED_VOLATILITY = 27,
  CALCINDEX_WARRANT_DELTA = 28,
  CALCINDEX_CALL_PRICE = 29,
  CALCINDEX_TO_CALL_PRICE = 30,
  CALCINDEX_EFFECTIVE_LEVERAGE = 31,
  CALCINDEX_LEVERAGE_RATIO = 32,
  CALCINDEX_CONVERSION_RATIO = 33,
  CALCINDEX_BALANCE_POINT = 34,
  CALCINDEX_OPEN_INTEREST = 35,
  CALCINDEX_DELTA = 36,
  CALCINDEX_GAMMA = 37,
  CALCINDEX_THETA = 38,
  CALCINDEX_VEGA = 39,
  CALCINDEX_RHO = 40,
  CalcIndex_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  CalcIndex_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool CalcIndex_IsValid(int value);
constexpr CalcIndex CalcIndex_MIN = CALCINDEX_UNKNOWN;
constexpr CalcIndex CalcIndex_MAX = CALCINDEX_RHO;
constexpr int CalcIndex_ARRAYSIZE = CalcIndex_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CalcIndex_descriptor();
template<typename T>
inline const std::string& CalcIndex_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CalcIndex>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CalcIndex_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CalcIndex_descriptor(), enum_t_value);
}
inline bool CalcIndex_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CalcIndex* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CalcIndex>(
    CalcIndex_descriptor(), name, value);
}
enum HistoryCandlestickQueryType : int {
  UNKNOWN_QUERY_TYPE = 0,
  QUERY_BY_OFFSET = 1,
  QUERY_BY_DATE = 2,
  HistoryCandlestickQueryType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  HistoryCandlestickQueryType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool HistoryCandlestickQueryType_IsValid(int value);
constexpr HistoryCandlestickQueryType HistoryCandlestickQueryType_MIN = UNKNOWN_QUERY_TYPE;
constexpr HistoryCandlestickQueryType HistoryCandlestickQueryType_MAX = QUERY_BY_DATE;
constexpr int HistoryCandlestickQueryType_ARRAYSIZE = HistoryCandlestickQueryType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HistoryCandlestickQueryType_descriptor();
template<typename T>
inline const std::string& HistoryCandlestickQueryType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, HistoryCandlestickQueryType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function HistoryCandlestickQueryType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    HistoryCandlestickQueryType_descriptor(), enum_t_value);
}
inline bool HistoryCandlestickQueryType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, HistoryCandlestickQueryType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<HistoryCandlestickQueryType>(
    HistoryCandlestickQueryType_descriptor(), name, value);
}
enum Direction : int {
  BACKWARD = 0,
  FORWARD = 1,
  Direction_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  Direction_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool Direction_IsValid(int value);
constexpr Direction Direction_MIN = BACKWARD;
constexpr Direction Direction_MAX = FORWARD;
constexpr int Direction_ARRAYSIZE = Direction_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Direction_descriptor();
template<typename T>
inline const std::string& Direction_Name(T enum_t_value) {
  static_assert(::std::is_same<T, Direction>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function Direction_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    Direction_descriptor(), enum_t_value);
}
inline bool Direction_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Direction* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Direction>(
    Direction_descriptor(), name, value);
}
// ===================================================================

class SecurityRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityRequest) */ {
 public:
  inline SecurityRequest() : SecurityRequest(nullptr) {}
  ~SecurityRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityRequest(const SecurityRequest& from);
  SecurityRequest(SecurityRequest&& from) noexcept
    : SecurityRequest() {
    *this = ::std::move(from);
  }

  inline SecurityRequest& operator=(const SecurityRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityRequest& operator=(SecurityRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityRequest*>(
               &_SecurityRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(SecurityRequest& a, SecurityRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityRequest";
  }
  protected:
  explicit SecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class MultiSecurityRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.MultiSecurityRequest) */ {
 public:
  inline MultiSecurityRequest() : MultiSecurityRequest(nullptr) {}
  ~MultiSecurityRequest() override;
  explicit PROTOBUF_CONSTEXPR MultiSecurityRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MultiSecurityRequest(const MultiSecurityRequest& from);
  MultiSecurityRequest(MultiSecurityRequest&& from) noexcept
    : MultiSecurityRequest() {
    *this = ::std::move(from);
  }

  inline MultiSecurityRequest& operator=(const MultiSecurityRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiSecurityRequest& operator=(MultiSecurityRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MultiSecurityRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const MultiSecurityRequest* internal_default_instance() {
    return reinterpret_cast<const MultiSecurityRequest*>(
               &_MultiSecurityRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(MultiSecurityRequest& a, MultiSecurityRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(MultiSecurityRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MultiSecurityRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MultiSecurityRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MultiSecurityRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MultiSecurityRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const MultiSecurityRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MultiSecurityRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.MultiSecurityRequest";
  }
  protected:
  explicit MultiSecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
  };
  // repeated string symbol = 1 [json_name = "symbol"];
  int symbol_size() const;
  private:
  int _internal_symbol_size() const;
  public:
  void clear_symbol();
  const std::string& symbol(int index) const;
  std::string* mutable_symbol(int index);
  void set_symbol(int index, const std::string& value);
  void set_symbol(int index, std::string&& value);
  void set_symbol(int index, const char* value);
  void set_symbol(int index, const char* value, size_t size);
  std::string* add_symbol();
  void add_symbol(const std::string& value);
  void add_symbol(std::string&& value);
  void add_symbol(const char* value);
  void add_symbol(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symbol() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symbol();
  private:
  const std::string& _internal_symbol(int index) const;
  std::string* _internal_add_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.MultiSecurityRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityStaticInfoResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityStaticInfoResponse) */ {
 public:
  inline SecurityStaticInfoResponse() : SecurityStaticInfoResponse(nullptr) {}
  ~SecurityStaticInfoResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityStaticInfoResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityStaticInfoResponse(const SecurityStaticInfoResponse& from);
  SecurityStaticInfoResponse(SecurityStaticInfoResponse&& from) noexcept
    : SecurityStaticInfoResponse() {
    *this = ::std::move(from);
  }

  inline SecurityStaticInfoResponse& operator=(const SecurityStaticInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityStaticInfoResponse& operator=(SecurityStaticInfoResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityStaticInfoResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityStaticInfoResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityStaticInfoResponse*>(
               &_SecurityStaticInfoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(SecurityStaticInfoResponse& a, SecurityStaticInfoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityStaticInfoResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityStaticInfoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityStaticInfoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityStaticInfoResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityStaticInfoResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityStaticInfoResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityStaticInfoResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityStaticInfoResponse";
  }
  protected:
  explicit SecurityStaticInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSecuStaticInfoFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  int secu_static_info_size() const;
  private:
  int _internal_secu_static_info_size() const;
  public:
  void clear_secu_static_info();
  ::longbridge::quote::v1::StaticInfo* mutable_secu_static_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StaticInfo >*
      mutable_secu_static_info();
  private:
  const ::longbridge::quote::v1::StaticInfo& _internal_secu_static_info(int index) const;
  ::longbridge::quote::v1::StaticInfo* _internal_add_secu_static_info();
  public:
  const ::longbridge::quote::v1::StaticInfo& secu_static_info(int index) const;
  ::longbridge::quote::v1::StaticInfo* add_secu_static_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StaticInfo >&
      secu_static_info() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityStaticInfoResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StaticInfo > secu_static_info_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class StaticInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.StaticInfo) */ {
 public:
  inline StaticInfo() : StaticInfo(nullptr) {}
  ~StaticInfo() override;
  explicit PROTOBUF_CONSTEXPR StaticInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  StaticInfo(const StaticInfo& from);
  StaticInfo(StaticInfo&& from) noexcept
    : StaticInfo() {
    *this = ::std::move(from);
  }

  inline StaticInfo& operator=(const StaticInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline StaticInfo& operator=(StaticInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const StaticInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const StaticInfo* internal_default_instance() {
    return reinterpret_cast<const StaticInfo*>(
               &_StaticInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(StaticInfo& a, StaticInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(StaticInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StaticInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  StaticInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<StaticInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const StaticInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const StaticInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StaticInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.StaticInfo";
  }
  protected:
  explicit StaticInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStockDerivativesFieldNumber = 16,
    kSymbolFieldNumber = 1,
    kNameCnFieldNumber = 2,
    kNameEnFieldNumber = 3,
    kNameHkFieldNumber = 4,
    kListingDateFieldNumber = 5,
    kExchangeFieldNumber = 6,
    kCurrencyFieldNumber = 7,
    kEpsFieldNumber = 12,
    kEpsTtmFieldNumber = 13,
    kBpsFieldNumber = 14,
    kDividendYieldFieldNumber = 15,
    kBoardFieldNumber = 17,
    kTotalSharesFieldNumber = 9,
    kCirculatingSharesFieldNumber = 10,
    kHkSharesFieldNumber = 11,
    kLotSizeFieldNumber = 8,
  };
  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  int stock_derivatives_size() const;
  private:
  int _internal_stock_derivatives_size() const;
  public:
  void clear_stock_derivatives();
  private:
  int32_t _internal_stock_derivatives(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_stock_derivatives() const;
  void _internal_add_stock_derivatives(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_stock_derivatives();
  public:
  int32_t stock_derivatives(int index) const;
  void set_stock_derivatives(int index, int32_t value);
  void add_stock_derivatives(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      stock_derivatives() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_stock_derivatives();

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string name_cn = 2 [json_name = "nameCn"];
  void clear_name_cn();
  const std::string& name_cn() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_cn(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_cn();
  PROTOBUF_NODISCARD std::string* release_name_cn();
  void set_allocated_name_cn(std::string* name_cn);
  private:
  const std::string& _internal_name_cn() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_cn(const std::string& value);
  std::string* _internal_mutable_name_cn();
  public:

  // string name_en = 3 [json_name = "nameEn"];
  void clear_name_en();
  const std::string& name_en() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_en(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_en();
  PROTOBUF_NODISCARD std::string* release_name_en();
  void set_allocated_name_en(std::string* name_en);
  private:
  const std::string& _internal_name_en() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_en(const std::string& value);
  std::string* _internal_mutable_name_en();
  public:

  // string name_hk = 4 [json_name = "nameHk"];
  void clear_name_hk();
  const std::string& name_hk() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_hk(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_hk();
  PROTOBUF_NODISCARD std::string* release_name_hk();
  void set_allocated_name_hk(std::string* name_hk);
  private:
  const std::string& _internal_name_hk() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_hk(const std::string& value);
  std::string* _internal_mutable_name_hk();
  public:

  // string listing_date = 5 [json_name = "listingDate"];
  void clear_listing_date();
  const std::string& listing_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_listing_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_listing_date();
  PROTOBUF_NODISCARD std::string* release_listing_date();
  void set_allocated_listing_date(std::string* listing_date);
  private:
  const std::string& _internal_listing_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_listing_date(const std::string& value);
  std::string* _internal_mutable_listing_date();
  public:

  // string exchange = 6 [json_name = "exchange"];
  void clear_exchange();
  const std::string& exchange() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_exchange(ArgT0&& arg0, ArgT... args);
  std::string* mutable_exchange();
  PROTOBUF_NODISCARD std::string* release_exchange();
  void set_allocated_exchange(std::string* exchange);
  private:
  const std::string& _internal_exchange() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_exchange(const std::string& value);
  std::string* _internal_mutable_exchange();
  public:

  // string currency = 7 [json_name = "currency"];
  void clear_currency();
  const std::string& currency() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_currency(ArgT0&& arg0, ArgT... args);
  std::string* mutable_currency();
  PROTOBUF_NODISCARD std::string* release_currency();
  void set_allocated_currency(std::string* currency);
  private:
  const std::string& _internal_currency() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_currency(const std::string& value);
  std::string* _internal_mutable_currency();
  public:

  // string eps = 12 [json_name = "eps"];
  void clear_eps();
  const std::string& eps() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_eps(ArgT0&& arg0, ArgT... args);
  std::string* mutable_eps();
  PROTOBUF_NODISCARD std::string* release_eps();
  void set_allocated_eps(std::string* eps);
  private:
  const std::string& _internal_eps() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_eps(const std::string& value);
  std::string* _internal_mutable_eps();
  public:

  // string eps_ttm = 13 [json_name = "epsTtm"];
  void clear_eps_ttm();
  const std::string& eps_ttm() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_eps_ttm(ArgT0&& arg0, ArgT... args);
  std::string* mutable_eps_ttm();
  PROTOBUF_NODISCARD std::string* release_eps_ttm();
  void set_allocated_eps_ttm(std::string* eps_ttm);
  private:
  const std::string& _internal_eps_ttm() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_eps_ttm(const std::string& value);
  std::string* _internal_mutable_eps_ttm();
  public:

  // string bps = 14 [json_name = "bps"];
  void clear_bps();
  const std::string& bps() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_bps(ArgT0&& arg0, ArgT... args);
  std::string* mutable_bps();
  PROTOBUF_NODISCARD std::string* release_bps();
  void set_allocated_bps(std::string* bps);
  private:
  const std::string& _internal_bps() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_bps(const std::string& value);
  std::string* _internal_mutable_bps();
  public:

  // string dividend_yield = 15 [json_name = "dividendYield"];
  void clear_dividend_yield();
  const std::string& dividend_yield() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_dividend_yield(ArgT0&& arg0, ArgT... args);
  std::string* mutable_dividend_yield();
  PROTOBUF_NODISCARD std::string* release_dividend_yield();
  void set_allocated_dividend_yield(std::string* dividend_yield);
  private:
  const std::string& _internal_dividend_yield() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_dividend_yield(const std::string& value);
  std::string* _internal_mutable_dividend_yield();
  public:

  // string board = 17 [json_name = "board"];
  void clear_board();
  const std::string& board() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_board(ArgT0&& arg0, ArgT... args);
  std::string* mutable_board();
  PROTOBUF_NODISCARD std::string* release_board();
  void set_allocated_board(std::string* board);
  private:
  const std::string& _internal_board() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_board(const std::string& value);
  std::string* _internal_mutable_board();
  public:

  // int64 total_shares = 9 [json_name = "totalShares"];
  void clear_total_shares();
  int64_t total_shares() const;
  void set_total_shares(int64_t value);
  private:
  int64_t _internal_total_shares() const;
  void _internal_set_total_shares(int64_t value);
  public:

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  void clear_circulating_shares();
  int64_t circulating_shares() const;
  void set_circulating_shares(int64_t value);
  private:
  int64_t _internal_circulating_shares() const;
  void _internal_set_circulating_shares(int64_t value);
  public:

  // int64 hk_shares = 11 [json_name = "hkShares"];
  void clear_hk_shares();
  int64_t hk_shares() const;
  void set_hk_shares(int64_t value);
  private:
  int64_t _internal_hk_shares() const;
  void _internal_set_hk_shares(int64_t value);
  public:

  // int32 lot_size = 8 [json_name = "lotSize"];
  void clear_lot_size();
  int32_t lot_size() const;
  void set_lot_size(int32_t value);
  private:
  int32_t _internal_lot_size() const;
  void _internal_set_lot_size(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.StaticInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > stock_derivatives_;
  mutable std::atomic<int> _stock_derivatives_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_cn_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_en_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_hk_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr listing_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr exchange_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr currency_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr eps_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr eps_ttm_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr bps_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr dividend_yield_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr board_;
  int64_t total_shares_;
  int64_t circulating_shares_;
  int64_t hk_shares_;
  int32_t lot_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityQuoteResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityQuoteResponse) */ {
 public:
  inline SecurityQuoteResponse() : SecurityQuoteResponse(nullptr) {}
  ~SecurityQuoteResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityQuoteResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityQuoteResponse(const SecurityQuoteResponse& from);
  SecurityQuoteResponse(SecurityQuoteResponse&& from) noexcept
    : SecurityQuoteResponse() {
    *this = ::std::move(from);
  }

  inline SecurityQuoteResponse& operator=(const SecurityQuoteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityQuoteResponse& operator=(SecurityQuoteResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityQuoteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityQuoteResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityQuoteResponse*>(
               &_SecurityQuoteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(SecurityQuoteResponse& a, SecurityQuoteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityQuoteResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityQuoteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityQuoteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityQuoteResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityQuoteResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityQuoteResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityQuoteResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityQuoteResponse";
  }
  protected:
  explicit SecurityQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSecuQuoteFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  int secu_quote_size() const;
  private:
  int _internal_secu_quote_size() const;
  public:
  void clear_secu_quote();
  ::longbridge::quote::v1::SecurityQuote* mutable_secu_quote(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityQuote >*
      mutable_secu_quote();
  private:
  const ::longbridge::quote::v1::SecurityQuote& _internal_secu_quote(int index) const;
  ::longbridge::quote::v1::SecurityQuote* _internal_add_secu_quote();
  public:
  const ::longbridge::quote::v1::SecurityQuote& secu_quote(int index) const;
  ::longbridge::quote::v1::SecurityQuote* add_secu_quote();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityQuote >&
      secu_quote() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityQuoteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityQuote > secu_quote_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityQuote final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityQuote) */ {
 public:
  inline SecurityQuote() : SecurityQuote(nullptr) {}
  ~SecurityQuote() override;
  explicit PROTOBUF_CONSTEXPR SecurityQuote(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityQuote(const SecurityQuote& from);
  SecurityQuote(SecurityQuote&& from) noexcept
    : SecurityQuote() {
    *this = ::std::move(from);
  }

  inline SecurityQuote& operator=(const SecurityQuote& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityQuote& operator=(SecurityQuote&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityQuote& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityQuote* internal_default_instance() {
    return reinterpret_cast<const SecurityQuote*>(
               &_SecurityQuote_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(SecurityQuote& a, SecurityQuote& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityQuote* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityQuote* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityQuote* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityQuote>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityQuote& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityQuote& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityQuote* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityQuote";
  }
  protected:
  explicit SecurityQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kLastDoneFieldNumber = 2,
    kPrevCloseFieldNumber = 3,
    kOpenFieldNumber = 4,
    kHighFieldNumber = 5,
    kLowFieldNumber = 6,
    kTurnoverFieldNumber = 9,
    kPreMarketQuoteFieldNumber = 11,
    kPostMarketQuoteFieldNumber = 12,
    kOverNightQuoteFieldNumber = 13,
    kTimestampFieldNumber = 7,
    kVolumeFieldNumber = 8,
    kTradeStatusFieldNumber = 10,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string last_done = 2 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string prev_close = 3 [json_name = "prevClose"];
  void clear_prev_close();
  const std::string& prev_close() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_prev_close(ArgT0&& arg0, ArgT... args);
  std::string* mutable_prev_close();
  PROTOBUF_NODISCARD std::string* release_prev_close();
  void set_allocated_prev_close(std::string* prev_close);
  private:
  const std::string& _internal_prev_close() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_prev_close(const std::string& value);
  std::string* _internal_mutable_prev_close();
  public:

  // string open = 4 [json_name = "open"];
  void clear_open();
  const std::string& open() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_open(ArgT0&& arg0, ArgT... args);
  std::string* mutable_open();
  PROTOBUF_NODISCARD std::string* release_open();
  void set_allocated_open(std::string* open);
  private:
  const std::string& _internal_open() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_open(const std::string& value);
  std::string* _internal_mutable_open();
  public:

  // string high = 5 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string low = 6 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string turnover = 9 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // .longbridge.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  bool has_pre_market_quote() const;
  private:
  bool _internal_has_pre_market_quote() const;
  public:
  void clear_pre_market_quote();
  const ::longbridge::quote::v1::PrePostQuote& pre_market_quote() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::PrePostQuote* release_pre_market_quote();
  ::longbridge::quote::v1::PrePostQuote* mutable_pre_market_quote();
  void set_allocated_pre_market_quote(::longbridge::quote::v1::PrePostQuote* pre_market_quote);
  private:
  const ::longbridge::quote::v1::PrePostQuote& _internal_pre_market_quote() const;
  ::longbridge::quote::v1::PrePostQuote* _internal_mutable_pre_market_quote();
  public:
  void unsafe_arena_set_allocated_pre_market_quote(
      ::longbridge::quote::v1::PrePostQuote* pre_market_quote);
  ::longbridge::quote::v1::PrePostQuote* unsafe_arena_release_pre_market_quote();

  // .longbridge.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  bool has_post_market_quote() const;
  private:
  bool _internal_has_post_market_quote() const;
  public:
  void clear_post_market_quote();
  const ::longbridge::quote::v1::PrePostQuote& post_market_quote() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::PrePostQuote* release_post_market_quote();
  ::longbridge::quote::v1::PrePostQuote* mutable_post_market_quote();
  void set_allocated_post_market_quote(::longbridge::quote::v1::PrePostQuote* post_market_quote);
  private:
  const ::longbridge::quote::v1::PrePostQuote& _internal_post_market_quote() const;
  ::longbridge::quote::v1::PrePostQuote* _internal_mutable_post_market_quote();
  public:
  void unsafe_arena_set_allocated_post_market_quote(
      ::longbridge::quote::v1::PrePostQuote* post_market_quote);
  ::longbridge::quote::v1::PrePostQuote* unsafe_arena_release_post_market_quote();

  // .longbridge.quote.v1.PrePostQuote over_night_quote = 13 [json_name = "overNightQuote"];
  bool has_over_night_quote() const;
  private:
  bool _internal_has_over_night_quote() const;
  public:
  void clear_over_night_quote();
  const ::longbridge::quote::v1::PrePostQuote& over_night_quote() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::PrePostQuote* release_over_night_quote();
  ::longbridge::quote::v1::PrePostQuote* mutable_over_night_quote();
  void set_allocated_over_night_quote(::longbridge::quote::v1::PrePostQuote* over_night_quote);
  private:
  const ::longbridge::quote::v1::PrePostQuote& _internal_over_night_quote() const;
  ::longbridge::quote::v1::PrePostQuote* _internal_mutable_over_night_quote();
  public:
  void unsafe_arena_set_allocated_over_night_quote(
      ::longbridge::quote::v1::PrePostQuote* over_night_quote);
  ::longbridge::quote::v1::PrePostQuote* unsafe_arena_release_over_night_quote();

  // int64 timestamp = 7 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 8 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  void clear_trade_status();
  ::longbridge::quote::v1::TradeStatus trade_status() const;
  void set_trade_status(::longbridge::quote::v1::TradeStatus value);
  private:
  ::longbridge::quote::v1::TradeStatus _internal_trade_status() const;
  void _internal_set_trade_status(::longbridge::quote::v1::TradeStatus value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityQuote)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr prev_close_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr open_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::longbridge::quote::v1::PrePostQuote* pre_market_quote_;
  ::longbridge::quote::v1::PrePostQuote* post_market_quote_;
  ::longbridge::quote::v1::PrePostQuote* over_night_quote_;
  int64_t timestamp_;
  int64_t volume_;
  int trade_status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class PrePostQuote final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.PrePostQuote) */ {
 public:
  inline PrePostQuote() : PrePostQuote(nullptr) {}
  ~PrePostQuote() override;
  explicit PROTOBUF_CONSTEXPR PrePostQuote(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PrePostQuote(const PrePostQuote& from);
  PrePostQuote(PrePostQuote&& from) noexcept
    : PrePostQuote() {
    *this = ::std::move(from);
  }

  inline PrePostQuote& operator=(const PrePostQuote& from) {
    CopyFrom(from);
    return *this;
  }
  inline PrePostQuote& operator=(PrePostQuote&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PrePostQuote& default_instance() {
    return *internal_default_instance();
  }
  static inline const PrePostQuote* internal_default_instance() {
    return reinterpret_cast<const PrePostQuote*>(
               &_PrePostQuote_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(PrePostQuote& a, PrePostQuote& b) {
    a.Swap(&b);
  }
  inline void Swap(PrePostQuote* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PrePostQuote* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PrePostQuote* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PrePostQuote>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PrePostQuote& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PrePostQuote& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PrePostQuote* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.PrePostQuote";
  }
  protected:
  explicit PrePostQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLastDoneFieldNumber = 1,
    kTurnoverFieldNumber = 4,
    kHighFieldNumber = 5,
    kLowFieldNumber = 6,
    kPrevCloseFieldNumber = 7,
    kTimestampFieldNumber = 2,
    kVolumeFieldNumber = 3,
  };
  // string last_done = 1 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string turnover = 4 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // string high = 5 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string low = 6 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string prev_close = 7 [json_name = "prevClose"];
  void clear_prev_close();
  const std::string& prev_close() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_prev_close(ArgT0&& arg0, ArgT... args);
  std::string* mutable_prev_close();
  PROTOBUF_NODISCARD std::string* release_prev_close();
  void set_allocated_prev_close(std::string* prev_close);
  private:
  const std::string& _internal_prev_close() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_prev_close(const std::string& value);
  std::string* _internal_mutable_prev_close();
  public:

  // int64 timestamp = 2 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 3 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.PrePostQuote)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr prev_close_;
  int64_t timestamp_;
  int64_t volume_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionQuoteResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionQuoteResponse) */ {
 public:
  inline OptionQuoteResponse() : OptionQuoteResponse(nullptr) {}
  ~OptionQuoteResponse() override;
  explicit PROTOBUF_CONSTEXPR OptionQuoteResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionQuoteResponse(const OptionQuoteResponse& from);
  OptionQuoteResponse(OptionQuoteResponse&& from) noexcept
    : OptionQuoteResponse() {
    *this = ::std::move(from);
  }

  inline OptionQuoteResponse& operator=(const OptionQuoteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionQuoteResponse& operator=(OptionQuoteResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionQuoteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionQuoteResponse* internal_default_instance() {
    return reinterpret_cast<const OptionQuoteResponse*>(
               &_OptionQuoteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(OptionQuoteResponse& a, OptionQuoteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionQuoteResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionQuoteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionQuoteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionQuoteResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionQuoteResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionQuoteResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionQuoteResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionQuoteResponse";
  }
  protected:
  explicit OptionQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSecuQuoteFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  int secu_quote_size() const;
  private:
  int _internal_secu_quote_size() const;
  public:
  void clear_secu_quote();
  ::longbridge::quote::v1::OptionQuote* mutable_secu_quote(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::OptionQuote >*
      mutable_secu_quote();
  private:
  const ::longbridge::quote::v1::OptionQuote& _internal_secu_quote(int index) const;
  ::longbridge::quote::v1::OptionQuote* _internal_add_secu_quote();
  public:
  const ::longbridge::quote::v1::OptionQuote& secu_quote(int index) const;
  ::longbridge::quote::v1::OptionQuote* add_secu_quote();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::OptionQuote >&
      secu_quote() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionQuoteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::OptionQuote > secu_quote_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionQuote final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionQuote) */ {
 public:
  inline OptionQuote() : OptionQuote(nullptr) {}
  ~OptionQuote() override;
  explicit PROTOBUF_CONSTEXPR OptionQuote(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionQuote(const OptionQuote& from);
  OptionQuote(OptionQuote&& from) noexcept
    : OptionQuote() {
    *this = ::std::move(from);
  }

  inline OptionQuote& operator=(const OptionQuote& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionQuote& operator=(OptionQuote&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionQuote& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionQuote* internal_default_instance() {
    return reinterpret_cast<const OptionQuote*>(
               &_OptionQuote_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(OptionQuote& a, OptionQuote& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionQuote* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionQuote* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionQuote* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionQuote>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionQuote& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionQuote& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionQuote* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionQuote";
  }
  protected:
  explicit OptionQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kLastDoneFieldNumber = 2,
    kPrevCloseFieldNumber = 3,
    kOpenFieldNumber = 4,
    kHighFieldNumber = 5,
    kLowFieldNumber = 6,
    kTurnoverFieldNumber = 9,
    kOptionExtendFieldNumber = 11,
    kTimestampFieldNumber = 7,
    kVolumeFieldNumber = 8,
    kTradeStatusFieldNumber = 10,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string last_done = 2 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string prev_close = 3 [json_name = "prevClose"];
  void clear_prev_close();
  const std::string& prev_close() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_prev_close(ArgT0&& arg0, ArgT... args);
  std::string* mutable_prev_close();
  PROTOBUF_NODISCARD std::string* release_prev_close();
  void set_allocated_prev_close(std::string* prev_close);
  private:
  const std::string& _internal_prev_close() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_prev_close(const std::string& value);
  std::string* _internal_mutable_prev_close();
  public:

  // string open = 4 [json_name = "open"];
  void clear_open();
  const std::string& open() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_open(ArgT0&& arg0, ArgT... args);
  std::string* mutable_open();
  PROTOBUF_NODISCARD std::string* release_open();
  void set_allocated_open(std::string* open);
  private:
  const std::string& _internal_open() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_open(const std::string& value);
  std::string* _internal_mutable_open();
  public:

  // string high = 5 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string low = 6 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string turnover = 9 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // .longbridge.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  bool has_option_extend() const;
  private:
  bool _internal_has_option_extend() const;
  public:
  void clear_option_extend();
  const ::longbridge::quote::v1::OptionExtend& option_extend() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::OptionExtend* release_option_extend();
  ::longbridge::quote::v1::OptionExtend* mutable_option_extend();
  void set_allocated_option_extend(::longbridge::quote::v1::OptionExtend* option_extend);
  private:
  const ::longbridge::quote::v1::OptionExtend& _internal_option_extend() const;
  ::longbridge::quote::v1::OptionExtend* _internal_mutable_option_extend();
  public:
  void unsafe_arena_set_allocated_option_extend(
      ::longbridge::quote::v1::OptionExtend* option_extend);
  ::longbridge::quote::v1::OptionExtend* unsafe_arena_release_option_extend();

  // int64 timestamp = 7 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 8 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  void clear_trade_status();
  ::longbridge::quote::v1::TradeStatus trade_status() const;
  void set_trade_status(::longbridge::quote::v1::TradeStatus value);
  private:
  ::longbridge::quote::v1::TradeStatus _internal_trade_status() const;
  void _internal_set_trade_status(::longbridge::quote::v1::TradeStatus value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionQuote)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr prev_close_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr open_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::longbridge::quote::v1::OptionExtend* option_extend_;
  int64_t timestamp_;
  int64_t volume_;
  int trade_status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionExtend final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionExtend) */ {
 public:
  inline OptionExtend() : OptionExtend(nullptr) {}
  ~OptionExtend() override;
  explicit PROTOBUF_CONSTEXPR OptionExtend(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionExtend(const OptionExtend& from);
  OptionExtend(OptionExtend&& from) noexcept
    : OptionExtend() {
    *this = ::std::move(from);
  }

  inline OptionExtend& operator=(const OptionExtend& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionExtend& operator=(OptionExtend&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionExtend& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionExtend* internal_default_instance() {
    return reinterpret_cast<const OptionExtend*>(
               &_OptionExtend_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(OptionExtend& a, OptionExtend& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionExtend* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionExtend* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionExtend* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionExtend>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionExtend& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionExtend& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionExtend* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionExtend";
  }
  protected:
  explicit OptionExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kImpliedVolatilityFieldNumber = 1,
    kExpiryDateFieldNumber = 3,
    kStrikePriceFieldNumber = 4,
    kContractMultiplierFieldNumber = 5,
    kContractTypeFieldNumber = 6,
    kContractSizeFieldNumber = 7,
    kDirectionFieldNumber = 8,
    kHistoricalVolatilityFieldNumber = 9,
    kUnderlyingSymbolFieldNumber = 10,
    kOpenInterestFieldNumber = 2,
  };
  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  void clear_implied_volatility();
  const std::string& implied_volatility() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_implied_volatility(ArgT0&& arg0, ArgT... args);
  std::string* mutable_implied_volatility();
  PROTOBUF_NODISCARD std::string* release_implied_volatility();
  void set_allocated_implied_volatility(std::string* implied_volatility);
  private:
  const std::string& _internal_implied_volatility() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_implied_volatility(const std::string& value);
  std::string* _internal_mutable_implied_volatility();
  public:

  // string expiry_date = 3 [json_name = "expiryDate"];
  void clear_expiry_date();
  const std::string& expiry_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_expiry_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_expiry_date();
  PROTOBUF_NODISCARD std::string* release_expiry_date();
  void set_allocated_expiry_date(std::string* expiry_date);
  private:
  const std::string& _internal_expiry_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expiry_date(const std::string& value);
  std::string* _internal_mutable_expiry_date();
  public:

  // string strike_price = 4 [json_name = "strikePrice"];
  void clear_strike_price();
  const std::string& strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_strike_price();
  PROTOBUF_NODISCARD std::string* release_strike_price();
  void set_allocated_strike_price(std::string* strike_price);
  private:
  const std::string& _internal_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_strike_price(const std::string& value);
  std::string* _internal_mutable_strike_price();
  public:

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  void clear_contract_multiplier();
  const std::string& contract_multiplier() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_contract_multiplier(ArgT0&& arg0, ArgT... args);
  std::string* mutable_contract_multiplier();
  PROTOBUF_NODISCARD std::string* release_contract_multiplier();
  void set_allocated_contract_multiplier(std::string* contract_multiplier);
  private:
  const std::string& _internal_contract_multiplier() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_contract_multiplier(const std::string& value);
  std::string* _internal_mutable_contract_multiplier();
  public:

  // string contract_type = 6 [json_name = "contractType"];
  void clear_contract_type();
  const std::string& contract_type() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_contract_type(ArgT0&& arg0, ArgT... args);
  std::string* mutable_contract_type();
  PROTOBUF_NODISCARD std::string* release_contract_type();
  void set_allocated_contract_type(std::string* contract_type);
  private:
  const std::string& _internal_contract_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_contract_type(const std::string& value);
  std::string* _internal_mutable_contract_type();
  public:

  // string contract_size = 7 [json_name = "contractSize"];
  void clear_contract_size();
  const std::string& contract_size() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_contract_size(ArgT0&& arg0, ArgT... args);
  std::string* mutable_contract_size();
  PROTOBUF_NODISCARD std::string* release_contract_size();
  void set_allocated_contract_size(std::string* contract_size);
  private:
  const std::string& _internal_contract_size() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_contract_size(const std::string& value);
  std::string* _internal_mutable_contract_size();
  public:

  // string direction = 8 [json_name = "direction"];
  void clear_direction();
  const std::string& direction() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_direction(ArgT0&& arg0, ArgT... args);
  std::string* mutable_direction();
  PROTOBUF_NODISCARD std::string* release_direction();
  void set_allocated_direction(std::string* direction);
  private:
  const std::string& _internal_direction() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_direction(const std::string& value);
  std::string* _internal_mutable_direction();
  public:

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  void clear_historical_volatility();
  const std::string& historical_volatility() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_historical_volatility(ArgT0&& arg0, ArgT... args);
  std::string* mutable_historical_volatility();
  PROTOBUF_NODISCARD std::string* release_historical_volatility();
  void set_allocated_historical_volatility(std::string* historical_volatility);
  private:
  const std::string& _internal_historical_volatility() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_historical_volatility(const std::string& value);
  std::string* _internal_mutable_historical_volatility();
  public:

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  void clear_underlying_symbol();
  const std::string& underlying_symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_underlying_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_underlying_symbol();
  PROTOBUF_NODISCARD std::string* release_underlying_symbol();
  void set_allocated_underlying_symbol(std::string* underlying_symbol);
  private:
  const std::string& _internal_underlying_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_underlying_symbol(const std::string& value);
  std::string* _internal_mutable_underlying_symbol();
  public:

  // int64 open_interest = 2 [json_name = "openInterest"];
  void clear_open_interest();
  int64_t open_interest() const;
  void set_open_interest(int64_t value);
  private:
  int64_t _internal_open_interest() const;
  void _internal_set_open_interest(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionExtend)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr implied_volatility_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expiry_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr contract_multiplier_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr contract_type_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr contract_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr direction_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr historical_volatility_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr underlying_symbol_;
  int64_t open_interest_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class WarrantQuoteResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.WarrantQuoteResponse) */ {
 public:
  inline WarrantQuoteResponse() : WarrantQuoteResponse(nullptr) {}
  ~WarrantQuoteResponse() override;
  explicit PROTOBUF_CONSTEXPR WarrantQuoteResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WarrantQuoteResponse(const WarrantQuoteResponse& from);
  WarrantQuoteResponse(WarrantQuoteResponse&& from) noexcept
    : WarrantQuoteResponse() {
    *this = ::std::move(from);
  }

  inline WarrantQuoteResponse& operator=(const WarrantQuoteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline WarrantQuoteResponse& operator=(WarrantQuoteResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WarrantQuoteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const WarrantQuoteResponse* internal_default_instance() {
    return reinterpret_cast<const WarrantQuoteResponse*>(
               &_WarrantQuoteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(WarrantQuoteResponse& a, WarrantQuoteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(WarrantQuoteResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WarrantQuoteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  WarrantQuoteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WarrantQuoteResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WarrantQuoteResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const WarrantQuoteResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WarrantQuoteResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.WarrantQuoteResponse";
  }
  protected:
  explicit WarrantQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSecuQuoteFieldNumber = 2,
  };
  // repeated .longbridge.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  int secu_quote_size() const;
  private:
  int _internal_secu_quote_size() const;
  public:
  void clear_secu_quote();
  ::longbridge::quote::v1::WarrantQuote* mutable_secu_quote(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::WarrantQuote >*
      mutable_secu_quote();
  private:
  const ::longbridge::quote::v1::WarrantQuote& _internal_secu_quote(int index) const;
  ::longbridge::quote::v1::WarrantQuote* _internal_add_secu_quote();
  public:
  const ::longbridge::quote::v1::WarrantQuote& secu_quote(int index) const;
  ::longbridge::quote::v1::WarrantQuote* add_secu_quote();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::WarrantQuote >&
      secu_quote() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.WarrantQuoteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::WarrantQuote > secu_quote_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class WarrantQuote final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.WarrantQuote) */ {
 public:
  inline WarrantQuote() : WarrantQuote(nullptr) {}
  ~WarrantQuote() override;
  explicit PROTOBUF_CONSTEXPR WarrantQuote(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WarrantQuote(const WarrantQuote& from);
  WarrantQuote(WarrantQuote&& from) noexcept
    : WarrantQuote() {
    *this = ::std::move(from);
  }

  inline WarrantQuote& operator=(const WarrantQuote& from) {
    CopyFrom(from);
    return *this;
  }
  inline WarrantQuote& operator=(WarrantQuote&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WarrantQuote& default_instance() {
    return *internal_default_instance();
  }
  static inline const WarrantQuote* internal_default_instance() {
    return reinterpret_cast<const WarrantQuote*>(
               &_WarrantQuote_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(WarrantQuote& a, WarrantQuote& b) {
    a.Swap(&b);
  }
  inline void Swap(WarrantQuote* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WarrantQuote* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  WarrantQuote* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WarrantQuote>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WarrantQuote& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const WarrantQuote& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WarrantQuote* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.WarrantQuote";
  }
  protected:
  explicit WarrantQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kLastDoneFieldNumber = 2,
    kPrevCloseFieldNumber = 3,
    kOpenFieldNumber = 4,
    kHighFieldNumber = 5,
    kLowFieldNumber = 6,
    kTurnoverFieldNumber = 9,
    kWarrantExtendFieldNumber = 11,
    kTimestampFieldNumber = 7,
    kVolumeFieldNumber = 8,
    kTradeStatusFieldNumber = 10,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string last_done = 2 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string prev_close = 3 [json_name = "prevClose"];
  void clear_prev_close();
  const std::string& prev_close() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_prev_close(ArgT0&& arg0, ArgT... args);
  std::string* mutable_prev_close();
  PROTOBUF_NODISCARD std::string* release_prev_close();
  void set_allocated_prev_close(std::string* prev_close);
  private:
  const std::string& _internal_prev_close() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_prev_close(const std::string& value);
  std::string* _internal_mutable_prev_close();
  public:

  // string open = 4 [json_name = "open"];
  void clear_open();
  const std::string& open() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_open(ArgT0&& arg0, ArgT... args);
  std::string* mutable_open();
  PROTOBUF_NODISCARD std::string* release_open();
  void set_allocated_open(std::string* open);
  private:
  const std::string& _internal_open() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_open(const std::string& value);
  std::string* _internal_mutable_open();
  public:

  // string high = 5 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string low = 6 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string turnover = 9 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // .longbridge.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  bool has_warrant_extend() const;
  private:
  bool _internal_has_warrant_extend() const;
  public:
  void clear_warrant_extend();
  const ::longbridge::quote::v1::WarrantExtend& warrant_extend() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::WarrantExtend* release_warrant_extend();
  ::longbridge::quote::v1::WarrantExtend* mutable_warrant_extend();
  void set_allocated_warrant_extend(::longbridge::quote::v1::WarrantExtend* warrant_extend);
  private:
  const ::longbridge::quote::v1::WarrantExtend& _internal_warrant_extend() const;
  ::longbridge::quote::v1::WarrantExtend* _internal_mutable_warrant_extend();
  public:
  void unsafe_arena_set_allocated_warrant_extend(
      ::longbridge::quote::v1::WarrantExtend* warrant_extend);
  ::longbridge::quote::v1::WarrantExtend* unsafe_arena_release_warrant_extend();

  // int64 timestamp = 7 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 8 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  void clear_trade_status();
  ::longbridge::quote::v1::TradeStatus trade_status() const;
  void set_trade_status(::longbridge::quote::v1::TradeStatus value);
  private:
  ::longbridge::quote::v1::TradeStatus _internal_trade_status() const;
  void _internal_set_trade_status(::longbridge::quote::v1::TradeStatus value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.WarrantQuote)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr prev_close_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr open_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::longbridge::quote::v1::WarrantExtend* warrant_extend_;
  int64_t timestamp_;
  int64_t volume_;
  int trade_status_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class WarrantExtend final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.WarrantExtend) */ {
 public:
  inline WarrantExtend() : WarrantExtend(nullptr) {}
  ~WarrantExtend() override;
  explicit PROTOBUF_CONSTEXPR WarrantExtend(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WarrantExtend(const WarrantExtend& from);
  WarrantExtend(WarrantExtend&& from) noexcept
    : WarrantExtend() {
    *this = ::std::move(from);
  }

  inline WarrantExtend& operator=(const WarrantExtend& from) {
    CopyFrom(from);
    return *this;
  }
  inline WarrantExtend& operator=(WarrantExtend&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WarrantExtend& default_instance() {
    return *internal_default_instance();
  }
  static inline const WarrantExtend* internal_default_instance() {
    return reinterpret_cast<const WarrantExtend*>(
               &_WarrantExtend_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(WarrantExtend& a, WarrantExtend& b) {
    a.Swap(&b);
  }
  inline void Swap(WarrantExtend* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WarrantExtend* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  WarrantExtend* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WarrantExtend>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WarrantExtend& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const WarrantExtend& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WarrantExtend* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.WarrantExtend";
  }
  protected:
  explicit WarrantExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kImpliedVolatilityFieldNumber = 1,
    kExpiryDateFieldNumber = 2,
    kLastTradeDateFieldNumber = 3,
    kOutstandingRatioFieldNumber = 4,
    kConversionRatioFieldNumber = 6,
    kCategoryFieldNumber = 7,
    kStrikePriceFieldNumber = 8,
    kUpperStrikePriceFieldNumber = 9,
    kLowerStrikePriceFieldNumber = 10,
    kCallPriceFieldNumber = 11,
    kUnderlyingSymbolFieldNumber = 12,
    kOutstandingQtyFieldNumber = 5,
  };
  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  void clear_implied_volatility();
  const std::string& implied_volatility() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_implied_volatility(ArgT0&& arg0, ArgT... args);
  std::string* mutable_implied_volatility();
  PROTOBUF_NODISCARD std::string* release_implied_volatility();
  void set_allocated_implied_volatility(std::string* implied_volatility);
  private:
  const std::string& _internal_implied_volatility() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_implied_volatility(const std::string& value);
  std::string* _internal_mutable_implied_volatility();
  public:

  // string expiry_date = 2 [json_name = "expiryDate"];
  void clear_expiry_date();
  const std::string& expiry_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_expiry_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_expiry_date();
  PROTOBUF_NODISCARD std::string* release_expiry_date();
  void set_allocated_expiry_date(std::string* expiry_date);
  private:
  const std::string& _internal_expiry_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expiry_date(const std::string& value);
  std::string* _internal_mutable_expiry_date();
  public:

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  void clear_last_trade_date();
  const std::string& last_trade_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_trade_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_trade_date();
  PROTOBUF_NODISCARD std::string* release_last_trade_date();
  void set_allocated_last_trade_date(std::string* last_trade_date);
  private:
  const std::string& _internal_last_trade_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_trade_date(const std::string& value);
  std::string* _internal_mutable_last_trade_date();
  public:

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  void clear_outstanding_ratio();
  const std::string& outstanding_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_outstanding_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_outstanding_ratio();
  PROTOBUF_NODISCARD std::string* release_outstanding_ratio();
  void set_allocated_outstanding_ratio(std::string* outstanding_ratio);
  private:
  const std::string& _internal_outstanding_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_outstanding_ratio(const std::string& value);
  std::string* _internal_mutable_outstanding_ratio();
  public:

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  void clear_conversion_ratio();
  const std::string& conversion_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_conversion_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_conversion_ratio();
  PROTOBUF_NODISCARD std::string* release_conversion_ratio();
  void set_allocated_conversion_ratio(std::string* conversion_ratio);
  private:
  const std::string& _internal_conversion_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_conversion_ratio(const std::string& value);
  std::string* _internal_mutable_conversion_ratio();
  public:

  // string category = 7 [json_name = "category"];
  void clear_category();
  const std::string& category() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_category(ArgT0&& arg0, ArgT... args);
  std::string* mutable_category();
  PROTOBUF_NODISCARD std::string* release_category();
  void set_allocated_category(std::string* category);
  private:
  const std::string& _internal_category() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_category(const std::string& value);
  std::string* _internal_mutable_category();
  public:

  // string strike_price = 8 [json_name = "strikePrice"];
  void clear_strike_price();
  const std::string& strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_strike_price();
  PROTOBUF_NODISCARD std::string* release_strike_price();
  void set_allocated_strike_price(std::string* strike_price);
  private:
  const std::string& _internal_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_strike_price(const std::string& value);
  std::string* _internal_mutable_strike_price();
  public:

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  void clear_upper_strike_price();
  const std::string& upper_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_upper_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_upper_strike_price();
  PROTOBUF_NODISCARD std::string* release_upper_strike_price();
  void set_allocated_upper_strike_price(std::string* upper_strike_price);
  private:
  const std::string& _internal_upper_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_upper_strike_price(const std::string& value);
  std::string* _internal_mutable_upper_strike_price();
  public:

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  void clear_lower_strike_price();
  const std::string& lower_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_lower_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_lower_strike_price();
  PROTOBUF_NODISCARD std::string* release_lower_strike_price();
  void set_allocated_lower_strike_price(std::string* lower_strike_price);
  private:
  const std::string& _internal_lower_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_lower_strike_price(const std::string& value);
  std::string* _internal_mutable_lower_strike_price();
  public:

  // string call_price = 11 [json_name = "callPrice"];
  void clear_call_price();
  const std::string& call_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_call_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_call_price();
  PROTOBUF_NODISCARD std::string* release_call_price();
  void set_allocated_call_price(std::string* call_price);
  private:
  const std::string& _internal_call_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_call_price(const std::string& value);
  std::string* _internal_mutable_call_price();
  public:

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  void clear_underlying_symbol();
  const std::string& underlying_symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_underlying_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_underlying_symbol();
  PROTOBUF_NODISCARD std::string* release_underlying_symbol();
  void set_allocated_underlying_symbol(std::string* underlying_symbol);
  private:
  const std::string& _internal_underlying_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_underlying_symbol(const std::string& value);
  std::string* _internal_mutable_underlying_symbol();
  public:

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  void clear_outstanding_qty();
  int64_t outstanding_qty() const;
  void set_outstanding_qty(int64_t value);
  private:
  int64_t _internal_outstanding_qty() const;
  void _internal_set_outstanding_qty(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.WarrantExtend)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr implied_volatility_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expiry_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_trade_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr outstanding_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr conversion_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr category_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr upper_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr lower_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr call_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr underlying_symbol_;
  int64_t outstanding_qty_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityDepthResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityDepthResponse) */ {
 public:
  inline SecurityDepthResponse() : SecurityDepthResponse(nullptr) {}
  ~SecurityDepthResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityDepthResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityDepthResponse(const SecurityDepthResponse& from);
  SecurityDepthResponse(SecurityDepthResponse&& from) noexcept
    : SecurityDepthResponse() {
    *this = ::std::move(from);
  }

  inline SecurityDepthResponse& operator=(const SecurityDepthResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityDepthResponse& operator=(SecurityDepthResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityDepthResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityDepthResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityDepthResponse*>(
               &_SecurityDepthResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(SecurityDepthResponse& a, SecurityDepthResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityDepthResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityDepthResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityDepthResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityDepthResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityDepthResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityDepthResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityDepthResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityDepthResponse";
  }
  protected:
  explicit SecurityDepthResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAskFieldNumber = 2,
    kBidFieldNumber = 3,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.Depth ask = 2 [json_name = "ask"];
  int ask_size() const;
  private:
  int _internal_ask_size() const;
  public:
  void clear_ask();
  ::longbridge::quote::v1::Depth* mutable_ask(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
      mutable_ask();
  private:
  const ::longbridge::quote::v1::Depth& _internal_ask(int index) const;
  ::longbridge::quote::v1::Depth* _internal_add_ask();
  public:
  const ::longbridge::quote::v1::Depth& ask(int index) const;
  ::longbridge::quote::v1::Depth* add_ask();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
      ask() const;

  // repeated .longbridge.quote.v1.Depth bid = 3 [json_name = "bid"];
  int bid_size() const;
  private:
  int _internal_bid_size() const;
  public:
  void clear_bid();
  ::longbridge::quote::v1::Depth* mutable_bid(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
      mutable_bid();
  private:
  const ::longbridge::quote::v1::Depth& _internal_bid(int index) const;
  ::longbridge::quote::v1::Depth* _internal_add_bid();
  public:
  const ::longbridge::quote::v1::Depth& bid(int index) const;
  ::longbridge::quote::v1::Depth* add_bid();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
      bid() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityDepthResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth > ask_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth > bid_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class Depth final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.Depth) */ {
 public:
  inline Depth() : Depth(nullptr) {}
  ~Depth() override;
  explicit PROTOBUF_CONSTEXPR Depth(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Depth(const Depth& from);
  Depth(Depth&& from) noexcept
    : Depth() {
    *this = ::std::move(from);
  }

  inline Depth& operator=(const Depth& from) {
    CopyFrom(from);
    return *this;
  }
  inline Depth& operator=(Depth&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Depth& default_instance() {
    return *internal_default_instance();
  }
  static inline const Depth* internal_default_instance() {
    return reinterpret_cast<const Depth*>(
               &_Depth_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(Depth& a, Depth& b) {
    a.Swap(&b);
  }
  inline void Swap(Depth* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Depth* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Depth* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Depth>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Depth& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const Depth& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Depth* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.Depth";
  }
  protected:
  explicit Depth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriceFieldNumber = 2,
    kVolumeFieldNumber = 3,
    kOrderNumFieldNumber = 4,
    kPositionFieldNumber = 1,
  };
  // string price = 2 [json_name = "price"];
  void clear_price();
  const std::string& price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_price();
  PROTOBUF_NODISCARD std::string* release_price();
  void set_allocated_price(std::string* price);
  private:
  const std::string& _internal_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_price(const std::string& value);
  std::string* _internal_mutable_price();
  public:

  // int64 volume = 3 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // int64 order_num = 4 [json_name = "orderNum"];
  void clear_order_num();
  int64_t order_num() const;
  void set_order_num(int64_t value);
  private:
  int64_t _internal_order_num() const;
  void _internal_set_order_num(int64_t value);
  public:

  // int32 position = 1 [json_name = "position"];
  void clear_position();
  int32_t position() const;
  void set_position(int32_t value);
  private:
  int32_t _internal_position() const;
  void _internal_set_position(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.Depth)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr price_;
  int64_t volume_;
  int64_t order_num_;
  int32_t position_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityBrokersResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityBrokersResponse) */ {
 public:
  inline SecurityBrokersResponse() : SecurityBrokersResponse(nullptr) {}
  ~SecurityBrokersResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityBrokersResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityBrokersResponse(const SecurityBrokersResponse& from);
  SecurityBrokersResponse(SecurityBrokersResponse&& from) noexcept
    : SecurityBrokersResponse() {
    *this = ::std::move(from);
  }

  inline SecurityBrokersResponse& operator=(const SecurityBrokersResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityBrokersResponse& operator=(SecurityBrokersResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityBrokersResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityBrokersResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityBrokersResponse*>(
               &_SecurityBrokersResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(SecurityBrokersResponse& a, SecurityBrokersResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityBrokersResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityBrokersResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityBrokersResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityBrokersResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityBrokersResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityBrokersResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityBrokersResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityBrokersResponse";
  }
  protected:
  explicit SecurityBrokersResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAskBrokersFieldNumber = 2,
    kBidBrokersFieldNumber = 3,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  int ask_brokers_size() const;
  private:
  int _internal_ask_brokers_size() const;
  public:
  void clear_ask_brokers();
  ::longbridge::quote::v1::Brokers* mutable_ask_brokers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
      mutable_ask_brokers();
  private:
  const ::longbridge::quote::v1::Brokers& _internal_ask_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* _internal_add_ask_brokers();
  public:
  const ::longbridge::quote::v1::Brokers& ask_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* add_ask_brokers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
      ask_brokers() const;

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  int bid_brokers_size() const;
  private:
  int _internal_bid_brokers_size() const;
  public:
  void clear_bid_brokers();
  ::longbridge::quote::v1::Brokers* mutable_bid_brokers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
      mutable_bid_brokers();
  private:
  const ::longbridge::quote::v1::Brokers& _internal_bid_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* _internal_add_bid_brokers();
  public:
  const ::longbridge::quote::v1::Brokers& bid_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* add_bid_brokers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
      bid_brokers() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityBrokersResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers > ask_brokers_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers > bid_brokers_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class Brokers final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.Brokers) */ {
 public:
  inline Brokers() : Brokers(nullptr) {}
  ~Brokers() override;
  explicit PROTOBUF_CONSTEXPR Brokers(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Brokers(const Brokers& from);
  Brokers(Brokers&& from) noexcept
    : Brokers() {
    *this = ::std::move(from);
  }

  inline Brokers& operator=(const Brokers& from) {
    CopyFrom(from);
    return *this;
  }
  inline Brokers& operator=(Brokers&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Brokers& default_instance() {
    return *internal_default_instance();
  }
  static inline const Brokers* internal_default_instance() {
    return reinterpret_cast<const Brokers*>(
               &_Brokers_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(Brokers& a, Brokers& b) {
    a.Swap(&b);
  }
  inline void Swap(Brokers* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Brokers* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Brokers* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Brokers>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Brokers& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const Brokers& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Brokers* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.Brokers";
  }
  protected:
  explicit Brokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBrokerIdsFieldNumber = 2,
    kPositionFieldNumber = 1,
  };
  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  int broker_ids_size() const;
  private:
  int _internal_broker_ids_size() const;
  public:
  void clear_broker_ids();
  private:
  int32_t _internal_broker_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_broker_ids() const;
  void _internal_add_broker_ids(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_broker_ids();
  public:
  int32_t broker_ids(int index) const;
  void set_broker_ids(int index, int32_t value);
  void add_broker_ids(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      broker_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_broker_ids();

  // int32 position = 1 [json_name = "position"];
  void clear_position();
  int32_t position() const;
  void set_position(int32_t value);
  private:
  int32_t _internal_position() const;
  void _internal_set_position(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.Brokers)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > broker_ids_;
  mutable std::atomic<int> _broker_ids_cached_byte_size_;
  int32_t position_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class ParticipantBrokerIdsResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.ParticipantBrokerIdsResponse) */ {
 public:
  inline ParticipantBrokerIdsResponse() : ParticipantBrokerIdsResponse(nullptr) {}
  ~ParticipantBrokerIdsResponse() override;
  explicit PROTOBUF_CONSTEXPR ParticipantBrokerIdsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ParticipantBrokerIdsResponse(const ParticipantBrokerIdsResponse& from);
  ParticipantBrokerIdsResponse(ParticipantBrokerIdsResponse&& from) noexcept
    : ParticipantBrokerIdsResponse() {
    *this = ::std::move(from);
  }

  inline ParticipantBrokerIdsResponse& operator=(const ParticipantBrokerIdsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ParticipantBrokerIdsResponse& operator=(ParticipantBrokerIdsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ParticipantBrokerIdsResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const ParticipantBrokerIdsResponse* internal_default_instance() {
    return reinterpret_cast<const ParticipantBrokerIdsResponse*>(
               &_ParticipantBrokerIdsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(ParticipantBrokerIdsResponse& a, ParticipantBrokerIdsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ParticipantBrokerIdsResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ParticipantBrokerIdsResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ParticipantBrokerIdsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ParticipantBrokerIdsResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ParticipantBrokerIdsResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const ParticipantBrokerIdsResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ParticipantBrokerIdsResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.ParticipantBrokerIdsResponse";
  }
  protected:
  explicit ParticipantBrokerIdsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kParticipantBrokerNumbersFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  int participant_broker_numbers_size() const;
  private:
  int _internal_participant_broker_numbers_size() const;
  public:
  void clear_participant_broker_numbers();
  ::longbridge::quote::v1::ParticipantInfo* mutable_participant_broker_numbers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::ParticipantInfo >*
      mutable_participant_broker_numbers();
  private:
  const ::longbridge::quote::v1::ParticipantInfo& _internal_participant_broker_numbers(int index) const;
  ::longbridge::quote::v1::ParticipantInfo* _internal_add_participant_broker_numbers();
  public:
  const ::longbridge::quote::v1::ParticipantInfo& participant_broker_numbers(int index) const;
  ::longbridge::quote::v1::ParticipantInfo* add_participant_broker_numbers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::ParticipantInfo >&
      participant_broker_numbers() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.ParticipantBrokerIdsResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::ParticipantInfo > participant_broker_numbers_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class ParticipantInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.ParticipantInfo) */ {
 public:
  inline ParticipantInfo() : ParticipantInfo(nullptr) {}
  ~ParticipantInfo() override;
  explicit PROTOBUF_CONSTEXPR ParticipantInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ParticipantInfo(const ParticipantInfo& from);
  ParticipantInfo(ParticipantInfo&& from) noexcept
    : ParticipantInfo() {
    *this = ::std::move(from);
  }

  inline ParticipantInfo& operator=(const ParticipantInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline ParticipantInfo& operator=(ParticipantInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ParticipantInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const ParticipantInfo* internal_default_instance() {
    return reinterpret_cast<const ParticipantInfo*>(
               &_ParticipantInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(ParticipantInfo& a, ParticipantInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(ParticipantInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ParticipantInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ParticipantInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ParticipantInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ParticipantInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const ParticipantInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ParticipantInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.ParticipantInfo";
  }
  protected:
  explicit ParticipantInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBrokerIdsFieldNumber = 1,
    kParticipantNameCnFieldNumber = 2,
    kParticipantNameEnFieldNumber = 3,
    kParticipantNameHkFieldNumber = 4,
  };
  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  int broker_ids_size() const;
  private:
  int _internal_broker_ids_size() const;
  public:
  void clear_broker_ids();
  private:
  int32_t _internal_broker_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_broker_ids() const;
  void _internal_add_broker_ids(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_broker_ids();
  public:
  int32_t broker_ids(int index) const;
  void set_broker_ids(int index, int32_t value);
  void add_broker_ids(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      broker_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_broker_ids();

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  void clear_participant_name_cn();
  const std::string& participant_name_cn() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_participant_name_cn(ArgT0&& arg0, ArgT... args);
  std::string* mutable_participant_name_cn();
  PROTOBUF_NODISCARD std::string* release_participant_name_cn();
  void set_allocated_participant_name_cn(std::string* participant_name_cn);
  private:
  const std::string& _internal_participant_name_cn() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_participant_name_cn(const std::string& value);
  std::string* _internal_mutable_participant_name_cn();
  public:

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  void clear_participant_name_en();
  const std::string& participant_name_en() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_participant_name_en(ArgT0&& arg0, ArgT... args);
  std::string* mutable_participant_name_en();
  PROTOBUF_NODISCARD std::string* release_participant_name_en();
  void set_allocated_participant_name_en(std::string* participant_name_en);
  private:
  const std::string& _internal_participant_name_en() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_participant_name_en(const std::string& value);
  std::string* _internal_mutable_participant_name_en();
  public:

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  void clear_participant_name_hk();
  const std::string& participant_name_hk() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_participant_name_hk(ArgT0&& arg0, ArgT... args);
  std::string* mutable_participant_name_hk();
  PROTOBUF_NODISCARD std::string* release_participant_name_hk();
  void set_allocated_participant_name_hk(std::string* participant_name_hk);
  private:
  const std::string& _internal_participant_name_hk() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_participant_name_hk(const std::string& value);
  std::string* _internal_mutable_participant_name_hk();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.ParticipantInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > broker_ids_;
  mutable std::atomic<int> _broker_ids_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr participant_name_cn_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr participant_name_en_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr participant_name_hk_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityTradeRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityTradeRequest) */ {
 public:
  inline SecurityTradeRequest() : SecurityTradeRequest(nullptr) {}
  ~SecurityTradeRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityTradeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityTradeRequest(const SecurityTradeRequest& from);
  SecurityTradeRequest(SecurityTradeRequest&& from) noexcept
    : SecurityTradeRequest() {
    *this = ::std::move(from);
  }

  inline SecurityTradeRequest& operator=(const SecurityTradeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityTradeRequest& operator=(SecurityTradeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityTradeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityTradeRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityTradeRequest*>(
               &_SecurityTradeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(SecurityTradeRequest& a, SecurityTradeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityTradeRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityTradeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityTradeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityTradeRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityTradeRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityTradeRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityTradeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityTradeRequest";
  }
  protected:
  explicit SecurityTradeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kCountFieldNumber = 2,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // int32 count = 2 [json_name = "count"];
  void clear_count();
  int32_t count() const;
  void set_count(int32_t value);
  private:
  int32_t _internal_count() const;
  void _internal_set_count(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityTradeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int32_t count_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityTradeResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityTradeResponse) */ {
 public:
  inline SecurityTradeResponse() : SecurityTradeResponse(nullptr) {}
  ~SecurityTradeResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityTradeResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityTradeResponse(const SecurityTradeResponse& from);
  SecurityTradeResponse(SecurityTradeResponse&& from) noexcept
    : SecurityTradeResponse() {
    *this = ::std::move(from);
  }

  inline SecurityTradeResponse& operator=(const SecurityTradeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityTradeResponse& operator=(SecurityTradeResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityTradeResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityTradeResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityTradeResponse*>(
               &_SecurityTradeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(SecurityTradeResponse& a, SecurityTradeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityTradeResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityTradeResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityTradeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityTradeResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityTradeResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityTradeResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityTradeResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityTradeResponse";
  }
  protected:
  explicit SecurityTradeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTradesFieldNumber = 2,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.Trade trades = 2 [json_name = "trades"];
  int trades_size() const;
  private:
  int _internal_trades_size() const;
  public:
  void clear_trades();
  ::longbridge::quote::v1::Trade* mutable_trades(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >*
      mutable_trades();
  private:
  const ::longbridge::quote::v1::Trade& _internal_trades(int index) const;
  ::longbridge::quote::v1::Trade* _internal_add_trades();
  public:
  const ::longbridge::quote::v1::Trade& trades(int index) const;
  ::longbridge::quote::v1::Trade* add_trades();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >&
      trades() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityTradeResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade > trades_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class Trade final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.Trade) */ {
 public:
  inline Trade() : Trade(nullptr) {}
  ~Trade() override;
  explicit PROTOBUF_CONSTEXPR Trade(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Trade(const Trade& from);
  Trade(Trade&& from) noexcept
    : Trade() {
    *this = ::std::move(from);
  }

  inline Trade& operator=(const Trade& from) {
    CopyFrom(from);
    return *this;
  }
  inline Trade& operator=(Trade&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Trade& default_instance() {
    return *internal_default_instance();
  }
  static inline const Trade* internal_default_instance() {
    return reinterpret_cast<const Trade*>(
               &_Trade_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(Trade& a, Trade& b) {
    a.Swap(&b);
  }
  inline void Swap(Trade* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Trade* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Trade* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Trade>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Trade& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const Trade& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Trade* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.Trade";
  }
  protected:
  explicit Trade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriceFieldNumber = 1,
    kTradeTypeFieldNumber = 4,
    kVolumeFieldNumber = 2,
    kTimestampFieldNumber = 3,
    kDirectionFieldNumber = 5,
    kTradeSessionFieldNumber = 6,
  };
  // string price = 1 [json_name = "price"];
  void clear_price();
  const std::string& price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_price();
  PROTOBUF_NODISCARD std::string* release_price();
  void set_allocated_price(std::string* price);
  private:
  const std::string& _internal_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_price(const std::string& value);
  std::string* _internal_mutable_price();
  public:

  // string trade_type = 4 [json_name = "tradeType"];
  void clear_trade_type();
  const std::string& trade_type() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_trade_type(ArgT0&& arg0, ArgT... args);
  std::string* mutable_trade_type();
  PROTOBUF_NODISCARD std::string* release_trade_type();
  void set_allocated_trade_type(std::string* trade_type);
  private:
  const std::string& _internal_trade_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_trade_type(const std::string& value);
  std::string* _internal_mutable_trade_type();
  public:

  // int64 volume = 2 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // int64 timestamp = 3 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int32 direction = 5 [json_name = "direction"];
  void clear_direction();
  int32_t direction() const;
  void set_direction(int32_t value);
  private:
  int32_t _internal_direction() const;
  void _internal_set_direction(int32_t value);
  public:

  // .longbridge.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  void clear_trade_session();
  ::longbridge::quote::v1::TradeSession trade_session() const;
  void set_trade_session(::longbridge::quote::v1::TradeSession value);
  private:
  ::longbridge::quote::v1::TradeSession _internal_trade_session() const;
  void _internal_set_trade_session(::longbridge::quote::v1::TradeSession value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.Trade)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr trade_type_;
  int64_t volume_;
  int64_t timestamp_;
  int32_t direction_;
  int trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityIntradayRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityIntradayRequest) */ {
 public:
  inline SecurityIntradayRequest() : SecurityIntradayRequest(nullptr) {}
  ~SecurityIntradayRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityIntradayRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityIntradayRequest(const SecurityIntradayRequest& from);
  SecurityIntradayRequest(SecurityIntradayRequest&& from) noexcept
    : SecurityIntradayRequest() {
    *this = ::std::move(from);
  }

  inline SecurityIntradayRequest& operator=(const SecurityIntradayRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityIntradayRequest& operator=(SecurityIntradayRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityIntradayRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityIntradayRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityIntradayRequest*>(
               &_SecurityIntradayRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(SecurityIntradayRequest& a, SecurityIntradayRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityIntradayRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityIntradayRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityIntradayRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityIntradayRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityIntradayRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityIntradayRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityIntradayRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityIntradayRequest";
  }
  protected:
  explicit SecurityIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kTradeSessionFieldNumber = 2,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // int32 trade_session = 2 [json_name = "tradeSession"];
  void clear_trade_session();
  int32_t trade_session() const;
  void set_trade_session(int32_t value);
  private:
  int32_t _internal_trade_session() const;
  void _internal_set_trade_session(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityIntradayRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int32_t trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityIntradayResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityIntradayResponse) */ {
 public:
  inline SecurityIntradayResponse() : SecurityIntradayResponse(nullptr) {}
  ~SecurityIntradayResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityIntradayResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityIntradayResponse(const SecurityIntradayResponse& from);
  SecurityIntradayResponse(SecurityIntradayResponse&& from) noexcept
    : SecurityIntradayResponse() {
    *this = ::std::move(from);
  }

  inline SecurityIntradayResponse& operator=(const SecurityIntradayResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityIntradayResponse& operator=(SecurityIntradayResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityIntradayResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityIntradayResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityIntradayResponse*>(
               &_SecurityIntradayResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(SecurityIntradayResponse& a, SecurityIntradayResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityIntradayResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityIntradayResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityIntradayResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityIntradayResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityIntradayResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityIntradayResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityIntradayResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityIntradayResponse";
  }
  protected:
  explicit SecurityIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLinesFieldNumber = 2,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.Line lines = 2 [json_name = "lines"];
  int lines_size() const;
  private:
  int _internal_lines_size() const;
  public:
  void clear_lines();
  ::longbridge::quote::v1::Line* mutable_lines(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Line >*
      mutable_lines();
  private:
  const ::longbridge::quote::v1::Line& _internal_lines(int index) const;
  ::longbridge::quote::v1::Line* _internal_add_lines();
  public:
  const ::longbridge::quote::v1::Line& lines(int index) const;
  ::longbridge::quote::v1::Line* add_lines();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Line >&
      lines() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityIntradayResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Line > lines_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class Line final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.Line) */ {
 public:
  inline Line() : Line(nullptr) {}
  ~Line() override;
  explicit PROTOBUF_CONSTEXPR Line(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Line(const Line& from);
  Line(Line&& from) noexcept
    : Line() {
    *this = ::std::move(from);
  }

  inline Line& operator=(const Line& from) {
    CopyFrom(from);
    return *this;
  }
  inline Line& operator=(Line&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Line& default_instance() {
    return *internal_default_instance();
  }
  static inline const Line* internal_default_instance() {
    return reinterpret_cast<const Line*>(
               &_Line_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(Line& a, Line& b) {
    a.Swap(&b);
  }
  inline void Swap(Line* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Line* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Line* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Line>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Line& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const Line& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Line* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.Line";
  }
  protected:
  explicit Line(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriceFieldNumber = 1,
    kTurnoverFieldNumber = 4,
    kAvgPriceFieldNumber = 5,
    kTimestampFieldNumber = 2,
    kVolumeFieldNumber = 3,
  };
  // string price = 1 [json_name = "price"];
  void clear_price();
  const std::string& price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_price();
  PROTOBUF_NODISCARD std::string* release_price();
  void set_allocated_price(std::string* price);
  private:
  const std::string& _internal_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_price(const std::string& value);
  std::string* _internal_mutable_price();
  public:

  // string turnover = 4 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // string avg_price = 5 [json_name = "avgPrice"];
  void clear_avg_price();
  const std::string& avg_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_avg_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_avg_price();
  PROTOBUF_NODISCARD std::string* release_avg_price();
  void set_allocated_avg_price(std::string* avg_price);
  private:
  const std::string& _internal_avg_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_avg_price(const std::string& value);
  std::string* _internal_mutable_avg_price();
  public:

  // int64 timestamp = 2 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 3 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.Line)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr avg_price_;
  int64_t timestamp_;
  int64_t volume_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityCandlestickRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityCandlestickRequest) */ {
 public:
  inline SecurityCandlestickRequest() : SecurityCandlestickRequest(nullptr) {}
  ~SecurityCandlestickRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityCandlestickRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityCandlestickRequest(const SecurityCandlestickRequest& from);
  SecurityCandlestickRequest(SecurityCandlestickRequest&& from) noexcept
    : SecurityCandlestickRequest() {
    *this = ::std::move(from);
  }

  inline SecurityCandlestickRequest& operator=(const SecurityCandlestickRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityCandlestickRequest& operator=(SecurityCandlestickRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityCandlestickRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityCandlestickRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityCandlestickRequest*>(
               &_SecurityCandlestickRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(SecurityCandlestickRequest& a, SecurityCandlestickRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityCandlestickRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityCandlestickRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityCandlestickRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityCandlestickRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityCandlestickRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityCandlestickRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityCandlestickRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityCandlestickRequest";
  }
  protected:
  explicit SecurityCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kPeriodFieldNumber = 2,
    kCountFieldNumber = 3,
    kAdjustTypeFieldNumber = 4,
    kTradeSessionFieldNumber = 5,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  void clear_period();
  ::longbridge::quote::v1::Period period() const;
  void set_period(::longbridge::quote::v1::Period value);
  private:
  ::longbridge::quote::v1::Period _internal_period() const;
  void _internal_set_period(::longbridge::quote::v1::Period value);
  public:

  // int32 count = 3 [json_name = "count"];
  void clear_count();
  int32_t count() const;
  void set_count(int32_t value);
  private:
  int32_t _internal_count() const;
  void _internal_set_count(int32_t value);
  public:

  // .longbridge.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  void clear_adjust_type();
  ::longbridge::quote::v1::AdjustType adjust_type() const;
  void set_adjust_type(::longbridge::quote::v1::AdjustType value);
  private:
  ::longbridge::quote::v1::AdjustType _internal_adjust_type() const;
  void _internal_set_adjust_type(::longbridge::quote::v1::AdjustType value);
  public:

  // int32 trade_session = 5 [json_name = "tradeSession"];
  void clear_trade_session();
  int32_t trade_session() const;
  void set_trade_session(int32_t value);
  private:
  int32_t _internal_trade_session() const;
  void _internal_set_trade_session(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityCandlestickRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int period_;
  int32_t count_;
  int adjust_type_;
  int32_t trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityCandlestickResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityCandlestickResponse) */ {
 public:
  inline SecurityCandlestickResponse() : SecurityCandlestickResponse(nullptr) {}
  ~SecurityCandlestickResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityCandlestickResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityCandlestickResponse(const SecurityCandlestickResponse& from);
  SecurityCandlestickResponse(SecurityCandlestickResponse&& from) noexcept
    : SecurityCandlestickResponse() {
    *this = ::std::move(from);
  }

  inline SecurityCandlestickResponse& operator=(const SecurityCandlestickResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityCandlestickResponse& operator=(SecurityCandlestickResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityCandlestickResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityCandlestickResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityCandlestickResponse*>(
               &_SecurityCandlestickResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(SecurityCandlestickResponse& a, SecurityCandlestickResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityCandlestickResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityCandlestickResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityCandlestickResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityCandlestickResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityCandlestickResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityCandlestickResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityCandlestickResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityCandlestickResponse";
  }
  protected:
  explicit SecurityCandlestickResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kCandlesticksFieldNumber = 2,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  int candlesticks_size() const;
  private:
  int _internal_candlesticks_size() const;
  public:
  void clear_candlesticks();
  ::longbridge::quote::v1::Candlestick* mutable_candlesticks(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Candlestick >*
      mutable_candlesticks();
  private:
  const ::longbridge::quote::v1::Candlestick& _internal_candlesticks(int index) const;
  ::longbridge::quote::v1::Candlestick* _internal_add_candlesticks();
  public:
  const ::longbridge::quote::v1::Candlestick& candlesticks(int index) const;
  ::longbridge::quote::v1::Candlestick* add_candlesticks();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Candlestick >&
      candlesticks() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityCandlestickResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Candlestick > candlesticks_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class Candlestick final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.Candlestick) */ {
 public:
  inline Candlestick() : Candlestick(nullptr) {}
  ~Candlestick() override;
  explicit PROTOBUF_CONSTEXPR Candlestick(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Candlestick(const Candlestick& from);
  Candlestick(Candlestick&& from) noexcept
    : Candlestick() {
    *this = ::std::move(from);
  }

  inline Candlestick& operator=(const Candlestick& from) {
    CopyFrom(from);
    return *this;
  }
  inline Candlestick& operator=(Candlestick&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Candlestick& default_instance() {
    return *internal_default_instance();
  }
  static inline const Candlestick* internal_default_instance() {
    return reinterpret_cast<const Candlestick*>(
               &_Candlestick_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  friend void swap(Candlestick& a, Candlestick& b) {
    a.Swap(&b);
  }
  inline void Swap(Candlestick* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Candlestick* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Candlestick* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Candlestick>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Candlestick& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const Candlestick& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Candlestick* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.Candlestick";
  }
  protected:
  explicit Candlestick(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kCloseFieldNumber = 1,
    kOpenFieldNumber = 2,
    kLowFieldNumber = 3,
    kHighFieldNumber = 4,
    kTurnoverFieldNumber = 6,
    kVolumeFieldNumber = 5,
    kTimestampFieldNumber = 7,
    kTradeSessionFieldNumber = 8,
  };
  // string close = 1 [json_name = "close"];
  void clear_close();
  const std::string& close() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_close(ArgT0&& arg0, ArgT... args);
  std::string* mutable_close();
  PROTOBUF_NODISCARD std::string* release_close();
  void set_allocated_close(std::string* close);
  private:
  const std::string& _internal_close() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_close(const std::string& value);
  std::string* _internal_mutable_close();
  public:

  // string open = 2 [json_name = "open"];
  void clear_open();
  const std::string& open() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_open(ArgT0&& arg0, ArgT... args);
  std::string* mutable_open();
  PROTOBUF_NODISCARD std::string* release_open();
  void set_allocated_open(std::string* open);
  private:
  const std::string& _internal_open() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_open(const std::string& value);
  std::string* _internal_mutable_open();
  public:

  // string low = 3 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string high = 4 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string turnover = 6 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // int64 volume = 5 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // int64 timestamp = 7 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // .longbridge.quote.v1.TradeSession trade_session = 8 [json_name = "tradeSession"];
  void clear_trade_session();
  ::longbridge::quote::v1::TradeSession trade_session() const;
  void set_trade_session(::longbridge::quote::v1::TradeSession value);
  private:
  ::longbridge::quote::v1::TradeSession _internal_trade_session() const;
  void _internal_set_trade_session(::longbridge::quote::v1::TradeSession value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.Candlestick)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr close_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr open_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  int64_t volume_;
  int64_t timestamp_;
  int trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionChainDateListResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionChainDateListResponse) */ {
 public:
  inline OptionChainDateListResponse() : OptionChainDateListResponse(nullptr) {}
  ~OptionChainDateListResponse() override;
  explicit PROTOBUF_CONSTEXPR OptionChainDateListResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionChainDateListResponse(const OptionChainDateListResponse& from);
  OptionChainDateListResponse(OptionChainDateListResponse&& from) noexcept
    : OptionChainDateListResponse() {
    *this = ::std::move(from);
  }

  inline OptionChainDateListResponse& operator=(const OptionChainDateListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionChainDateListResponse& operator=(OptionChainDateListResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionChainDateListResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionChainDateListResponse* internal_default_instance() {
    return reinterpret_cast<const OptionChainDateListResponse*>(
               &_OptionChainDateListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  friend void swap(OptionChainDateListResponse& a, OptionChainDateListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionChainDateListResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionChainDateListResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionChainDateListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionChainDateListResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionChainDateListResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionChainDateListResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionChainDateListResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionChainDateListResponse";
  }
  protected:
  explicit OptionChainDateListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kExpiryDateFieldNumber = 1,
  };
  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  int expiry_date_size() const;
  private:
  int _internal_expiry_date_size() const;
  public:
  void clear_expiry_date();
  const std::string& expiry_date(int index) const;
  std::string* mutable_expiry_date(int index);
  void set_expiry_date(int index, const std::string& value);
  void set_expiry_date(int index, std::string&& value);
  void set_expiry_date(int index, const char* value);
  void set_expiry_date(int index, const char* value, size_t size);
  std::string* add_expiry_date();
  void add_expiry_date(const std::string& value);
  void add_expiry_date(std::string&& value);
  void add_expiry_date(const char* value);
  void add_expiry_date(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& expiry_date() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_expiry_date();
  private:
  const std::string& _internal_expiry_date(int index) const;
  std::string* _internal_add_expiry_date();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionChainDateListResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> expiry_date_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionChainDateStrikeInfoRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionChainDateStrikeInfoRequest) */ {
 public:
  inline OptionChainDateStrikeInfoRequest() : OptionChainDateStrikeInfoRequest(nullptr) {}
  ~OptionChainDateStrikeInfoRequest() override;
  explicit PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionChainDateStrikeInfoRequest(const OptionChainDateStrikeInfoRequest& from);
  OptionChainDateStrikeInfoRequest(OptionChainDateStrikeInfoRequest&& from) noexcept
    : OptionChainDateStrikeInfoRequest() {
    *this = ::std::move(from);
  }

  inline OptionChainDateStrikeInfoRequest& operator=(const OptionChainDateStrikeInfoRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionChainDateStrikeInfoRequest& operator=(OptionChainDateStrikeInfoRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionChainDateStrikeInfoRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionChainDateStrikeInfoRequest* internal_default_instance() {
    return reinterpret_cast<const OptionChainDateStrikeInfoRequest*>(
               &_OptionChainDateStrikeInfoRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  friend void swap(OptionChainDateStrikeInfoRequest& a, OptionChainDateStrikeInfoRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionChainDateStrikeInfoRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionChainDateStrikeInfoRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionChainDateStrikeInfoRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionChainDateStrikeInfoRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionChainDateStrikeInfoRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionChainDateStrikeInfoRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionChainDateStrikeInfoRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionChainDateStrikeInfoRequest";
  }
  protected:
  explicit OptionChainDateStrikeInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kExpiryDateFieldNumber = 2,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string expiry_date = 2 [json_name = "expiryDate"];
  void clear_expiry_date();
  const std::string& expiry_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_expiry_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_expiry_date();
  PROTOBUF_NODISCARD std::string* release_expiry_date();
  void set_allocated_expiry_date(std::string* expiry_date);
  private:
  const std::string& _internal_expiry_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expiry_date(const std::string& value);
  std::string* _internal_mutable_expiry_date();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expiry_date_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class OptionChainDateStrikeInfoResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.OptionChainDateStrikeInfoResponse) */ {
 public:
  inline OptionChainDateStrikeInfoResponse() : OptionChainDateStrikeInfoResponse(nullptr) {}
  ~OptionChainDateStrikeInfoResponse() override;
  explicit PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OptionChainDateStrikeInfoResponse(const OptionChainDateStrikeInfoResponse& from);
  OptionChainDateStrikeInfoResponse(OptionChainDateStrikeInfoResponse&& from) noexcept
    : OptionChainDateStrikeInfoResponse() {
    *this = ::std::move(from);
  }

  inline OptionChainDateStrikeInfoResponse& operator=(const OptionChainDateStrikeInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline OptionChainDateStrikeInfoResponse& operator=(OptionChainDateStrikeInfoResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OptionChainDateStrikeInfoResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const OptionChainDateStrikeInfoResponse* internal_default_instance() {
    return reinterpret_cast<const OptionChainDateStrikeInfoResponse*>(
               &_OptionChainDateStrikeInfoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

  friend void swap(OptionChainDateStrikeInfoResponse& a, OptionChainDateStrikeInfoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(OptionChainDateStrikeInfoResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OptionChainDateStrikeInfoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OptionChainDateStrikeInfoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OptionChainDateStrikeInfoResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OptionChainDateStrikeInfoResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const OptionChainDateStrikeInfoResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OptionChainDateStrikeInfoResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.OptionChainDateStrikeInfoResponse";
  }
  protected:
  explicit OptionChainDateStrikeInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStrikePriceInfoFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  int strike_price_info_size() const;
  private:
  int _internal_strike_price_info_size() const;
  public:
  void clear_strike_price_info();
  ::longbridge::quote::v1::StrikePriceInfo* mutable_strike_price_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StrikePriceInfo >*
      mutable_strike_price_info();
  private:
  const ::longbridge::quote::v1::StrikePriceInfo& _internal_strike_price_info(int index) const;
  ::longbridge::quote::v1::StrikePriceInfo* _internal_add_strike_price_info();
  public:
  const ::longbridge::quote::v1::StrikePriceInfo& strike_price_info(int index) const;
  ::longbridge::quote::v1::StrikePriceInfo* add_strike_price_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StrikePriceInfo >&
      strike_price_info() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StrikePriceInfo > strike_price_info_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class StrikePriceInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.StrikePriceInfo) */ {
 public:
  inline StrikePriceInfo() : StrikePriceInfo(nullptr) {}
  ~StrikePriceInfo() override;
  explicit PROTOBUF_CONSTEXPR StrikePriceInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  StrikePriceInfo(const StrikePriceInfo& from);
  StrikePriceInfo(StrikePriceInfo&& from) noexcept
    : StrikePriceInfo() {
    *this = ::std::move(from);
  }

  inline StrikePriceInfo& operator=(const StrikePriceInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline StrikePriceInfo& operator=(StrikePriceInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const StrikePriceInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const StrikePriceInfo* internal_default_instance() {
    return reinterpret_cast<const StrikePriceInfo*>(
               &_StrikePriceInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

  friend void swap(StrikePriceInfo& a, StrikePriceInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(StrikePriceInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StrikePriceInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  StrikePriceInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<StrikePriceInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const StrikePriceInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const StrikePriceInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StrikePriceInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.StrikePriceInfo";
  }
  protected:
  explicit StrikePriceInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriceFieldNumber = 1,
    kCallSymbolFieldNumber = 2,
    kPutSymbolFieldNumber = 3,
    kStandardFieldNumber = 4,
  };
  // string price = 1 [json_name = "price"];
  void clear_price();
  const std::string& price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_price();
  PROTOBUF_NODISCARD std::string* release_price();
  void set_allocated_price(std::string* price);
  private:
  const std::string& _internal_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_price(const std::string& value);
  std::string* _internal_mutable_price();
  public:

  // string call_symbol = 2 [json_name = "callSymbol"];
  void clear_call_symbol();
  const std::string& call_symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_call_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_call_symbol();
  PROTOBUF_NODISCARD std::string* release_call_symbol();
  void set_allocated_call_symbol(std::string* call_symbol);
  private:
  const std::string& _internal_call_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_call_symbol(const std::string& value);
  std::string* _internal_mutable_call_symbol();
  public:

  // string put_symbol = 3 [json_name = "putSymbol"];
  void clear_put_symbol();
  const std::string& put_symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_put_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_put_symbol();
  PROTOBUF_NODISCARD std::string* release_put_symbol();
  void set_allocated_put_symbol(std::string* put_symbol);
  private:
  const std::string& _internal_put_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_put_symbol(const std::string& value);
  std::string* _internal_mutable_put_symbol();
  public:

  // bool standard = 4 [json_name = "standard"];
  void clear_standard();
  bool standard() const;
  void set_standard(bool value);
  private:
  bool _internal_standard() const;
  void _internal_set_standard(bool value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.StrikePriceInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr call_symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr put_symbol_;
  bool standard_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class IssuerInfoResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.IssuerInfoResponse) */ {
 public:
  inline IssuerInfoResponse() : IssuerInfoResponse(nullptr) {}
  ~IssuerInfoResponse() override;
  explicit PROTOBUF_CONSTEXPR IssuerInfoResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  IssuerInfoResponse(const IssuerInfoResponse& from);
  IssuerInfoResponse(IssuerInfoResponse&& from) noexcept
    : IssuerInfoResponse() {
    *this = ::std::move(from);
  }

  inline IssuerInfoResponse& operator=(const IssuerInfoResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline IssuerInfoResponse& operator=(IssuerInfoResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const IssuerInfoResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const IssuerInfoResponse* internal_default_instance() {
    return reinterpret_cast<const IssuerInfoResponse*>(
               &_IssuerInfoResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    32;

  friend void swap(IssuerInfoResponse& a, IssuerInfoResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(IssuerInfoResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IssuerInfoResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  IssuerInfoResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<IssuerInfoResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const IssuerInfoResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const IssuerInfoResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IssuerInfoResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.IssuerInfoResponse";
  }
  protected:
  explicit IssuerInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kIssuerInfoFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  int issuer_info_size() const;
  private:
  int _internal_issuer_info_size() const;
  public:
  void clear_issuer_info();
  ::longbridge::quote::v1::IssuerInfo* mutable_issuer_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::IssuerInfo >*
      mutable_issuer_info();
  private:
  const ::longbridge::quote::v1::IssuerInfo& _internal_issuer_info(int index) const;
  ::longbridge::quote::v1::IssuerInfo* _internal_add_issuer_info();
  public:
  const ::longbridge::quote::v1::IssuerInfo& issuer_info(int index) const;
  ::longbridge::quote::v1::IssuerInfo* add_issuer_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::IssuerInfo >&
      issuer_info() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.IssuerInfoResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::IssuerInfo > issuer_info_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class IssuerInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.IssuerInfo) */ {
 public:
  inline IssuerInfo() : IssuerInfo(nullptr) {}
  ~IssuerInfo() override;
  explicit PROTOBUF_CONSTEXPR IssuerInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  IssuerInfo(const IssuerInfo& from);
  IssuerInfo(IssuerInfo&& from) noexcept
    : IssuerInfo() {
    *this = ::std::move(from);
  }

  inline IssuerInfo& operator=(const IssuerInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline IssuerInfo& operator=(IssuerInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const IssuerInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const IssuerInfo* internal_default_instance() {
    return reinterpret_cast<const IssuerInfo*>(
               &_IssuerInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    33;

  friend void swap(IssuerInfo& a, IssuerInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(IssuerInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IssuerInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  IssuerInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<IssuerInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const IssuerInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const IssuerInfo& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IssuerInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.IssuerInfo";
  }
  protected:
  explicit IssuerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameCnFieldNumber = 2,
    kNameEnFieldNumber = 3,
    kNameHkFieldNumber = 4,
    kIdFieldNumber = 1,
  };
  // string name_cn = 2 [json_name = "nameCn"];
  void clear_name_cn();
  const std::string& name_cn() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_cn(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_cn();
  PROTOBUF_NODISCARD std::string* release_name_cn();
  void set_allocated_name_cn(std::string* name_cn);
  private:
  const std::string& _internal_name_cn() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_cn(const std::string& value);
  std::string* _internal_mutable_name_cn();
  public:

  // string name_en = 3 [json_name = "nameEn"];
  void clear_name_en();
  const std::string& name_en() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_en(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_en();
  PROTOBUF_NODISCARD std::string* release_name_en();
  void set_allocated_name_en(std::string* name_en);
  private:
  const std::string& _internal_name_en() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_en(const std::string& value);
  std::string* _internal_mutable_name_en();
  public:

  // string name_hk = 4 [json_name = "nameHk"];
  void clear_name_hk();
  const std::string& name_hk() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name_hk(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name_hk();
  PROTOBUF_NODISCARD std::string* release_name_hk();
  void set_allocated_name_hk(std::string* name_hk);
  private:
  const std::string& _internal_name_hk() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name_hk(const std::string& value);
  std::string* _internal_mutable_name_hk();
  public:

  // int32 id = 1 [json_name = "id"];
  void clear_id();
  int32_t id() const;
  void set_id(int32_t value);
  private:
  int32_t _internal_id() const;
  void _internal_set_id(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.IssuerInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_cn_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_en_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_hk_;
  int32_t id_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class WarrantFilterListRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.WarrantFilterListRequest) */ {
 public:
  inline WarrantFilterListRequest() : WarrantFilterListRequest(nullptr) {}
  ~WarrantFilterListRequest() override;
  explicit PROTOBUF_CONSTEXPR WarrantFilterListRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WarrantFilterListRequest(const WarrantFilterListRequest& from);
  WarrantFilterListRequest(WarrantFilterListRequest&& from) noexcept
    : WarrantFilterListRequest() {
    *this = ::std::move(from);
  }

  inline WarrantFilterListRequest& operator=(const WarrantFilterListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline WarrantFilterListRequest& operator=(WarrantFilterListRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WarrantFilterListRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const WarrantFilterListRequest* internal_default_instance() {
    return reinterpret_cast<const WarrantFilterListRequest*>(
               &_WarrantFilterListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    34;

  friend void swap(WarrantFilterListRequest& a, WarrantFilterListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(WarrantFilterListRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WarrantFilterListRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  WarrantFilterListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WarrantFilterListRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WarrantFilterListRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const WarrantFilterListRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WarrantFilterListRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.WarrantFilterListRequest";
  }
  protected:
  explicit WarrantFilterListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kFilterConfigFieldNumber = 2,
    kLanguageFieldNumber = 3,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // .longbridge.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  bool has_filter_config() const;
  private:
  bool _internal_has_filter_config() const;
  public:
  void clear_filter_config();
  const ::longbridge::quote::v1::FilterConfig& filter_config() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::FilterConfig* release_filter_config();
  ::longbridge::quote::v1::FilterConfig* mutable_filter_config();
  void set_allocated_filter_config(::longbridge::quote::v1::FilterConfig* filter_config);
  private:
  const ::longbridge::quote::v1::FilterConfig& _internal_filter_config() const;
  ::longbridge::quote::v1::FilterConfig* _internal_mutable_filter_config();
  public:
  void unsafe_arena_set_allocated_filter_config(
      ::longbridge::quote::v1::FilterConfig* filter_config);
  ::longbridge::quote::v1::FilterConfig* unsafe_arena_release_filter_config();

  // int32 language = 3 [json_name = "language"];
  void clear_language();
  int32_t language() const;
  void set_language(int32_t value);
  private:
  int32_t _internal_language() const;
  void _internal_set_language(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.WarrantFilterListRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::longbridge::quote::v1::FilterConfig* filter_config_;
  int32_t language_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class FilterConfig final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.FilterConfig) */ {
 public:
  inline FilterConfig() : FilterConfig(nullptr) {}
  ~FilterConfig() override;
  explicit PROTOBUF_CONSTEXPR FilterConfig(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FilterConfig(const FilterConfig& from);
  FilterConfig(FilterConfig&& from) noexcept
    : FilterConfig() {
    *this = ::std::move(from);
  }

  inline FilterConfig& operator=(const FilterConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline FilterConfig& operator=(FilterConfig&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FilterConfig& default_instance() {
    return *internal_default_instance();
  }
  static inline const FilterConfig* internal_default_instance() {
    return reinterpret_cast<const FilterConfig*>(
               &_FilterConfig_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    35;

  friend void swap(FilterConfig& a, FilterConfig& b) {
    a.Swap(&b);
  }
  inline void Swap(FilterConfig* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FilterConfig* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FilterConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FilterConfig>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FilterConfig& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const FilterConfig& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FilterConfig* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.FilterConfig";
  }
  protected:
  explicit FilterConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTypeFieldNumber = 5,
    kIssuerFieldNumber = 6,
    kExpiryDateFieldNumber = 7,
    kPriceTypeFieldNumber = 8,
    kStatusFieldNumber = 9,
    kSortByFieldNumber = 1,
    kSortOrderFieldNumber = 2,
    kSortOffsetFieldNumber = 3,
    kSortCountFieldNumber = 4,
  };
  // repeated int32 type = 5 [json_name = "type"];
  int type_size() const;
  private:
  int _internal_type_size() const;
  public:
  void clear_type();
  private:
  int32_t _internal_type(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_type() const;
  void _internal_add_type(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_type();
  public:
  int32_t type(int index) const;
  void set_type(int index, int32_t value);
  void add_type(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      type() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_type();

  // repeated int32 issuer = 6 [json_name = "issuer"];
  int issuer_size() const;
  private:
  int _internal_issuer_size() const;
  public:
  void clear_issuer();
  private:
  int32_t _internal_issuer(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_issuer() const;
  void _internal_add_issuer(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_issuer();
  public:
  int32_t issuer(int index) const;
  void set_issuer(int index, int32_t value);
  void add_issuer(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      issuer() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_issuer();

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  int expiry_date_size() const;
  private:
  int _internal_expiry_date_size() const;
  public:
  void clear_expiry_date();
  private:
  int32_t _internal_expiry_date(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_expiry_date() const;
  void _internal_add_expiry_date(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_expiry_date();
  public:
  int32_t expiry_date(int index) const;
  void set_expiry_date(int index, int32_t value);
  void add_expiry_date(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      expiry_date() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_expiry_date();

  // repeated int32 price_type = 8 [json_name = "priceType"];
  int price_type_size() const;
  private:
  int _internal_price_type_size() const;
  public:
  void clear_price_type();
  private:
  int32_t _internal_price_type(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_price_type() const;
  void _internal_add_price_type(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_price_type();
  public:
  int32_t price_type(int index) const;
  void set_price_type(int index, int32_t value);
  void add_price_type(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      price_type() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_price_type();

  // repeated int32 status = 9 [json_name = "status"];
  int status_size() const;
  private:
  int _internal_status_size() const;
  public:
  void clear_status();
  private:
  int32_t _internal_status(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_status() const;
  void _internal_add_status(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_status();
  public:
  int32_t status(int index) const;
  void set_status(int index, int32_t value);
  void add_status(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      status() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_status();

  // int32 sort_by = 1 [json_name = "sortBy"];
  void clear_sort_by();
  int32_t sort_by() const;
  void set_sort_by(int32_t value);
  private:
  int32_t _internal_sort_by() const;
  void _internal_set_sort_by(int32_t value);
  public:

  // int32 sort_order = 2 [json_name = "sortOrder"];
  void clear_sort_order();
  int32_t sort_order() const;
  void set_sort_order(int32_t value);
  private:
  int32_t _internal_sort_order() const;
  void _internal_set_sort_order(int32_t value);
  public:

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  void clear_sort_offset();
  int32_t sort_offset() const;
  void set_sort_offset(int32_t value);
  private:
  int32_t _internal_sort_offset() const;
  void _internal_set_sort_offset(int32_t value);
  public:

  // int32 sort_count = 4 [json_name = "sortCount"];
  void clear_sort_count();
  int32_t sort_count() const;
  void set_sort_count(int32_t value);
  private:
  int32_t _internal_sort_count() const;
  void _internal_set_sort_count(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.FilterConfig)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > type_;
  mutable std::atomic<int> _type_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > issuer_;
  mutable std::atomic<int> _issuer_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > expiry_date_;
  mutable std::atomic<int> _expiry_date_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > price_type_;
  mutable std::atomic<int> _price_type_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > status_;
  mutable std::atomic<int> _status_cached_byte_size_;
  int32_t sort_by_;
  int32_t sort_order_;
  int32_t sort_offset_;
  int32_t sort_count_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class WarrantFilterListResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.WarrantFilterListResponse) */ {
 public:
  inline WarrantFilterListResponse() : WarrantFilterListResponse(nullptr) {}
  ~WarrantFilterListResponse() override;
  explicit PROTOBUF_CONSTEXPR WarrantFilterListResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  WarrantFilterListResponse(const WarrantFilterListResponse& from);
  WarrantFilterListResponse(WarrantFilterListResponse&& from) noexcept
    : WarrantFilterListResponse() {
    *this = ::std::move(from);
  }

  inline WarrantFilterListResponse& operator=(const WarrantFilterListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline WarrantFilterListResponse& operator=(WarrantFilterListResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const WarrantFilterListResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const WarrantFilterListResponse* internal_default_instance() {
    return reinterpret_cast<const WarrantFilterListResponse*>(
               &_WarrantFilterListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    36;

  friend void swap(WarrantFilterListResponse& a, WarrantFilterListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(WarrantFilterListResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WarrantFilterListResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  WarrantFilterListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<WarrantFilterListResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const WarrantFilterListResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const WarrantFilterListResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WarrantFilterListResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.WarrantFilterListResponse";
  }
  protected:
  explicit WarrantFilterListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kWarrantListFieldNumber = 1,
    kTotalCountFieldNumber = 2,
  };
  // repeated .longbridge.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  int warrant_list_size() const;
  private:
  int _internal_warrant_list_size() const;
  public:
  void clear_warrant_list();
  ::longbridge::quote::v1::FilterWarrant* mutable_warrant_list(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::FilterWarrant >*
      mutable_warrant_list();
  private:
  const ::longbridge::quote::v1::FilterWarrant& _internal_warrant_list(int index) const;
  ::longbridge::quote::v1::FilterWarrant* _internal_add_warrant_list();
  public:
  const ::longbridge::quote::v1::FilterWarrant& warrant_list(int index) const;
  ::longbridge::quote::v1::FilterWarrant* add_warrant_list();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::FilterWarrant >&
      warrant_list() const;

  // int32 total_count = 2 [json_name = "totalCount"];
  void clear_total_count();
  int32_t total_count() const;
  void set_total_count(int32_t value);
  private:
  int32_t _internal_total_count() const;
  void _internal_set_total_count(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.WarrantFilterListResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::FilterWarrant > warrant_list_;
  int32_t total_count_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class FilterWarrant final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.FilterWarrant) */ {
 public:
  inline FilterWarrant() : FilterWarrant(nullptr) {}
  ~FilterWarrant() override;
  explicit PROTOBUF_CONSTEXPR FilterWarrant(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FilterWarrant(const FilterWarrant& from);
  FilterWarrant(FilterWarrant&& from) noexcept
    : FilterWarrant() {
    *this = ::std::move(from);
  }

  inline FilterWarrant& operator=(const FilterWarrant& from) {
    CopyFrom(from);
    return *this;
  }
  inline FilterWarrant& operator=(FilterWarrant&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FilterWarrant& default_instance() {
    return *internal_default_instance();
  }
  static inline const FilterWarrant* internal_default_instance() {
    return reinterpret_cast<const FilterWarrant*>(
               &_FilterWarrant_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  friend void swap(FilterWarrant& a, FilterWarrant& b) {
    a.Swap(&b);
  }
  inline void Swap(FilterWarrant* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FilterWarrant* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FilterWarrant* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FilterWarrant>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FilterWarrant& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const FilterWarrant& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FilterWarrant* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.FilterWarrant";
  }
  protected:
  explicit FilterWarrant(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kNameFieldNumber = 2,
    kLastDoneFieldNumber = 3,
    kChangeRateFieldNumber = 4,
    kChangeValFieldNumber = 5,
    kTurnoverFieldNumber = 7,
    kExpiryDateFieldNumber = 8,
    kStrikePriceFieldNumber = 9,
    kUpperStrikePriceFieldNumber = 10,
    kLowerStrikePriceFieldNumber = 11,
    kOutstandingQtyFieldNumber = 12,
    kOutstandingRatioFieldNumber = 13,
    kPremiumFieldNumber = 14,
    kItmOtmFieldNumber = 15,
    kImpliedVolatilityFieldNumber = 16,
    kDeltaFieldNumber = 17,
    kCallPriceFieldNumber = 18,
    kToCallPriceFieldNumber = 19,
    kEffectiveLeverageFieldNumber = 20,
    kLeverageRatioFieldNumber = 21,
    kConversionRatioFieldNumber = 22,
    kBalancePointFieldNumber = 23,
    kVolumeFieldNumber = 6,
    kStatusFieldNumber = 24,
    kTypeFieldNumber = 25,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string name = 2 [json_name = "name"];
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string last_done = 3 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string change_rate = 4 [json_name = "changeRate"];
  void clear_change_rate();
  const std::string& change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_change_rate();
  PROTOBUF_NODISCARD std::string* release_change_rate();
  void set_allocated_change_rate(std::string* change_rate);
  private:
  const std::string& _internal_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_change_rate(const std::string& value);
  std::string* _internal_mutable_change_rate();
  public:

  // string change_val = 5 [json_name = "changeVal"];
  void clear_change_val();
  const std::string& change_val() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_change_val(ArgT0&& arg0, ArgT... args);
  std::string* mutable_change_val();
  PROTOBUF_NODISCARD std::string* release_change_val();
  void set_allocated_change_val(std::string* change_val);
  private:
  const std::string& _internal_change_val() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_change_val(const std::string& value);
  std::string* _internal_mutable_change_val();
  public:

  // string turnover = 7 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // string expiry_date = 8 [json_name = "expiryDate"];
  void clear_expiry_date();
  const std::string& expiry_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_expiry_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_expiry_date();
  PROTOBUF_NODISCARD std::string* release_expiry_date();
  void set_allocated_expiry_date(std::string* expiry_date);
  private:
  const std::string& _internal_expiry_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expiry_date(const std::string& value);
  std::string* _internal_mutable_expiry_date();
  public:

  // string strike_price = 9 [json_name = "strikePrice"];
  void clear_strike_price();
  const std::string& strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_strike_price();
  PROTOBUF_NODISCARD std::string* release_strike_price();
  void set_allocated_strike_price(std::string* strike_price);
  private:
  const std::string& _internal_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_strike_price(const std::string& value);
  std::string* _internal_mutable_strike_price();
  public:

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  void clear_upper_strike_price();
  const std::string& upper_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_upper_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_upper_strike_price();
  PROTOBUF_NODISCARD std::string* release_upper_strike_price();
  void set_allocated_upper_strike_price(std::string* upper_strike_price);
  private:
  const std::string& _internal_upper_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_upper_strike_price(const std::string& value);
  std::string* _internal_mutable_upper_strike_price();
  public:

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  void clear_lower_strike_price();
  const std::string& lower_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_lower_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_lower_strike_price();
  PROTOBUF_NODISCARD std::string* release_lower_strike_price();
  void set_allocated_lower_strike_price(std::string* lower_strike_price);
  private:
  const std::string& _internal_lower_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_lower_strike_price(const std::string& value);
  std::string* _internal_mutable_lower_strike_price();
  public:

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  void clear_outstanding_qty();
  const std::string& outstanding_qty() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_outstanding_qty(ArgT0&& arg0, ArgT... args);
  std::string* mutable_outstanding_qty();
  PROTOBUF_NODISCARD std::string* release_outstanding_qty();
  void set_allocated_outstanding_qty(std::string* outstanding_qty);
  private:
  const std::string& _internal_outstanding_qty() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_outstanding_qty(const std::string& value);
  std::string* _internal_mutable_outstanding_qty();
  public:

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  void clear_outstanding_ratio();
  const std::string& outstanding_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_outstanding_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_outstanding_ratio();
  PROTOBUF_NODISCARD std::string* release_outstanding_ratio();
  void set_allocated_outstanding_ratio(std::string* outstanding_ratio);
  private:
  const std::string& _internal_outstanding_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_outstanding_ratio(const std::string& value);
  std::string* _internal_mutable_outstanding_ratio();
  public:

  // string premium = 14 [json_name = "premium"];
  void clear_premium();
  const std::string& premium() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_premium(ArgT0&& arg0, ArgT... args);
  std::string* mutable_premium();
  PROTOBUF_NODISCARD std::string* release_premium();
  void set_allocated_premium(std::string* premium);
  private:
  const std::string& _internal_premium() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_premium(const std::string& value);
  std::string* _internal_mutable_premium();
  public:

  // string itm_otm = 15 [json_name = "itmOtm"];
  void clear_itm_otm();
  const std::string& itm_otm() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_itm_otm(ArgT0&& arg0, ArgT... args);
  std::string* mutable_itm_otm();
  PROTOBUF_NODISCARD std::string* release_itm_otm();
  void set_allocated_itm_otm(std::string* itm_otm);
  private:
  const std::string& _internal_itm_otm() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_itm_otm(const std::string& value);
  std::string* _internal_mutable_itm_otm();
  public:

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  void clear_implied_volatility();
  const std::string& implied_volatility() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_implied_volatility(ArgT0&& arg0, ArgT... args);
  std::string* mutable_implied_volatility();
  PROTOBUF_NODISCARD std::string* release_implied_volatility();
  void set_allocated_implied_volatility(std::string* implied_volatility);
  private:
  const std::string& _internal_implied_volatility() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_implied_volatility(const std::string& value);
  std::string* _internal_mutable_implied_volatility();
  public:

  // string delta = 17 [json_name = "delta"];
  void clear_delta();
  const std::string& delta() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_delta(ArgT0&& arg0, ArgT... args);
  std::string* mutable_delta();
  PROTOBUF_NODISCARD std::string* release_delta();
  void set_allocated_delta(std::string* delta);
  private:
  const std::string& _internal_delta() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_delta(const std::string& value);
  std::string* _internal_mutable_delta();
  public:

  // string call_price = 18 [json_name = "callPrice"];
  void clear_call_price();
  const std::string& call_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_call_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_call_price();
  PROTOBUF_NODISCARD std::string* release_call_price();
  void set_allocated_call_price(std::string* call_price);
  private:
  const std::string& _internal_call_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_call_price(const std::string& value);
  std::string* _internal_mutable_call_price();
  public:

  // string to_call_price = 19 [json_name = "toCallPrice"];
  void clear_to_call_price();
  const std::string& to_call_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_to_call_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_to_call_price();
  PROTOBUF_NODISCARD std::string* release_to_call_price();
  void set_allocated_to_call_price(std::string* to_call_price);
  private:
  const std::string& _internal_to_call_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_to_call_price(const std::string& value);
  std::string* _internal_mutable_to_call_price();
  public:

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  void clear_effective_leverage();
  const std::string& effective_leverage() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_effective_leverage(ArgT0&& arg0, ArgT... args);
  std::string* mutable_effective_leverage();
  PROTOBUF_NODISCARD std::string* release_effective_leverage();
  void set_allocated_effective_leverage(std::string* effective_leverage);
  private:
  const std::string& _internal_effective_leverage() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_effective_leverage(const std::string& value);
  std::string* _internal_mutable_effective_leverage();
  public:

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  void clear_leverage_ratio();
  const std::string& leverage_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_leverage_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_leverage_ratio();
  PROTOBUF_NODISCARD std::string* release_leverage_ratio();
  void set_allocated_leverage_ratio(std::string* leverage_ratio);
  private:
  const std::string& _internal_leverage_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_leverage_ratio(const std::string& value);
  std::string* _internal_mutable_leverage_ratio();
  public:

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  void clear_conversion_ratio();
  const std::string& conversion_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_conversion_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_conversion_ratio();
  PROTOBUF_NODISCARD std::string* release_conversion_ratio();
  void set_allocated_conversion_ratio(std::string* conversion_ratio);
  private:
  const std::string& _internal_conversion_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_conversion_ratio(const std::string& value);
  std::string* _internal_mutable_conversion_ratio();
  public:

  // string balance_point = 23 [json_name = "balancePoint"];
  void clear_balance_point();
  const std::string& balance_point() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_balance_point(ArgT0&& arg0, ArgT... args);
  std::string* mutable_balance_point();
  PROTOBUF_NODISCARD std::string* release_balance_point();
  void set_allocated_balance_point(std::string* balance_point);
  private:
  const std::string& _internal_balance_point() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_balance_point(const std::string& value);
  std::string* _internal_mutable_balance_point();
  public:

  // int64 volume = 6 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // int32 status = 24 [json_name = "status"];
  void clear_status();
  int32_t status() const;
  void set_status(int32_t value);
  private:
  int32_t _internal_status() const;
  void _internal_set_status(int32_t value);
  public:

  // int32 type = 25 [json_name = "type"];
  void clear_type();
  int32_t type() const;
  void set_type(int32_t value);
  private:
  int32_t _internal_type() const;
  void _internal_set_type(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.FilterWarrant)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr change_val_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expiry_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr upper_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr lower_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr outstanding_qty_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr outstanding_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr premium_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr itm_otm_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr implied_volatility_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr delta_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr call_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr to_call_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr effective_leverage_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr leverage_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr conversion_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr balance_point_;
  int64_t volume_;
  int32_t status_;
  int32_t type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class MarketTradePeriodResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.MarketTradePeriodResponse) */ {
 public:
  inline MarketTradePeriodResponse() : MarketTradePeriodResponse(nullptr) {}
  ~MarketTradePeriodResponse() override;
  explicit PROTOBUF_CONSTEXPR MarketTradePeriodResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MarketTradePeriodResponse(const MarketTradePeriodResponse& from);
  MarketTradePeriodResponse(MarketTradePeriodResponse&& from) noexcept
    : MarketTradePeriodResponse() {
    *this = ::std::move(from);
  }

  inline MarketTradePeriodResponse& operator=(const MarketTradePeriodResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline MarketTradePeriodResponse& operator=(MarketTradePeriodResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MarketTradePeriodResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const MarketTradePeriodResponse* internal_default_instance() {
    return reinterpret_cast<const MarketTradePeriodResponse*>(
               &_MarketTradePeriodResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    38;

  friend void swap(MarketTradePeriodResponse& a, MarketTradePeriodResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(MarketTradePeriodResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MarketTradePeriodResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MarketTradePeriodResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MarketTradePeriodResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MarketTradePeriodResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const MarketTradePeriodResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MarketTradePeriodResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.MarketTradePeriodResponse";
  }
  protected:
  explicit MarketTradePeriodResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kMarketTradeSessionFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  int market_trade_session_size() const;
  private:
  int _internal_market_trade_session_size() const;
  public:
  void clear_market_trade_session();
  ::longbridge::quote::v1::MarketTradePeriod* mutable_market_trade_session(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::MarketTradePeriod >*
      mutable_market_trade_session();
  private:
  const ::longbridge::quote::v1::MarketTradePeriod& _internal_market_trade_session(int index) const;
  ::longbridge::quote::v1::MarketTradePeriod* _internal_add_market_trade_session();
  public:
  const ::longbridge::quote::v1::MarketTradePeriod& market_trade_session(int index) const;
  ::longbridge::quote::v1::MarketTradePeriod* add_market_trade_session();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::MarketTradePeriod >&
      market_trade_session() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.MarketTradePeriodResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::MarketTradePeriod > market_trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class MarketTradePeriod final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.MarketTradePeriod) */ {
 public:
  inline MarketTradePeriod() : MarketTradePeriod(nullptr) {}
  ~MarketTradePeriod() override;
  explicit PROTOBUF_CONSTEXPR MarketTradePeriod(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MarketTradePeriod(const MarketTradePeriod& from);
  MarketTradePeriod(MarketTradePeriod&& from) noexcept
    : MarketTradePeriod() {
    *this = ::std::move(from);
  }

  inline MarketTradePeriod& operator=(const MarketTradePeriod& from) {
    CopyFrom(from);
    return *this;
  }
  inline MarketTradePeriod& operator=(MarketTradePeriod&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MarketTradePeriod& default_instance() {
    return *internal_default_instance();
  }
  static inline const MarketTradePeriod* internal_default_instance() {
    return reinterpret_cast<const MarketTradePeriod*>(
               &_MarketTradePeriod_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    39;

  friend void swap(MarketTradePeriod& a, MarketTradePeriod& b) {
    a.Swap(&b);
  }
  inline void Swap(MarketTradePeriod* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MarketTradePeriod* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MarketTradePeriod* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MarketTradePeriod>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MarketTradePeriod& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const MarketTradePeriod& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MarketTradePeriod* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.MarketTradePeriod";
  }
  protected:
  explicit MarketTradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTradeSessionFieldNumber = 2,
    kMarketFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  int trade_session_size() const;
  private:
  int _internal_trade_session_size() const;
  public:
  void clear_trade_session();
  ::longbridge::quote::v1::TradePeriod* mutable_trade_session(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::TradePeriod >*
      mutable_trade_session();
  private:
  const ::longbridge::quote::v1::TradePeriod& _internal_trade_session(int index) const;
  ::longbridge::quote::v1::TradePeriod* _internal_add_trade_session();
  public:
  const ::longbridge::quote::v1::TradePeriod& trade_session(int index) const;
  ::longbridge::quote::v1::TradePeriod* add_trade_session();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::TradePeriod >&
      trade_session() const;

  // string market = 1 [json_name = "market"];
  void clear_market();
  const std::string& market() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_market(ArgT0&& arg0, ArgT... args);
  std::string* mutable_market();
  PROTOBUF_NODISCARD std::string* release_market();
  void set_allocated_market(std::string* market);
  private:
  const std::string& _internal_market() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_market(const std::string& value);
  std::string* _internal_mutable_market();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.MarketTradePeriod)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::TradePeriod > trade_session_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr market_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class TradePeriod final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.TradePeriod) */ {
 public:
  inline TradePeriod() : TradePeriod(nullptr) {}
  ~TradePeriod() override;
  explicit PROTOBUF_CONSTEXPR TradePeriod(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  TradePeriod(const TradePeriod& from);
  TradePeriod(TradePeriod&& from) noexcept
    : TradePeriod() {
    *this = ::std::move(from);
  }

  inline TradePeriod& operator=(const TradePeriod& from) {
    CopyFrom(from);
    return *this;
  }
  inline TradePeriod& operator=(TradePeriod&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const TradePeriod& default_instance() {
    return *internal_default_instance();
  }
  static inline const TradePeriod* internal_default_instance() {
    return reinterpret_cast<const TradePeriod*>(
               &_TradePeriod_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    40;

  friend void swap(TradePeriod& a, TradePeriod& b) {
    a.Swap(&b);
  }
  inline void Swap(TradePeriod* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TradePeriod* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  TradePeriod* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TradePeriod>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TradePeriod& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const TradePeriod& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TradePeriod* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.TradePeriod";
  }
  protected:
  explicit TradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBegTimeFieldNumber = 1,
    kEndTimeFieldNumber = 2,
    kTradeSessionFieldNumber = 3,
  };
  // int32 beg_time = 1 [json_name = "begTime"];
  void clear_beg_time();
  int32_t beg_time() const;
  void set_beg_time(int32_t value);
  private:
  int32_t _internal_beg_time() const;
  void _internal_set_beg_time(int32_t value);
  public:

  // int32 end_time = 2 [json_name = "endTime"];
  void clear_end_time();
  int32_t end_time() const;
  void set_end_time(int32_t value);
  private:
  int32_t _internal_end_time() const;
  void _internal_set_end_time(int32_t value);
  public:

  // .longbridge.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  void clear_trade_session();
  ::longbridge::quote::v1::TradeSession trade_session() const;
  void set_trade_session(::longbridge::quote::v1::TradeSession value);
  private:
  ::longbridge::quote::v1::TradeSession _internal_trade_session() const;
  void _internal_set_trade_session(::longbridge::quote::v1::TradeSession value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.TradePeriod)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int32_t beg_time_;
  int32_t end_time_;
  int trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SubscriptionRequest final :
    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SubscriptionRequest) */ {
 public:
  inline SubscriptionRequest() : SubscriptionRequest(nullptr) {}
  explicit PROTOBUF_CONSTEXPR SubscriptionRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubscriptionRequest(const SubscriptionRequest& from);
  SubscriptionRequest(SubscriptionRequest&& from) noexcept
    : SubscriptionRequest() {
    *this = ::std::move(from);
  }

  inline SubscriptionRequest& operator=(const SubscriptionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubscriptionRequest& operator=(SubscriptionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubscriptionRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubscriptionRequest* internal_default_instance() {
    return reinterpret_cast<const SubscriptionRequest*>(
               &_SubscriptionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    41;

  friend void swap(SubscriptionRequest& a, SubscriptionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SubscriptionRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubscriptionRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubscriptionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubscriptionRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const SubscriptionRequest& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const SubscriptionRequest& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SubscriptionRequest";
  }
  protected:
  explicit SubscriptionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SubscriptionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SubscriptionResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SubscriptionResponse) */ {
 public:
  inline SubscriptionResponse() : SubscriptionResponse(nullptr) {}
  ~SubscriptionResponse() override;
  explicit PROTOBUF_CONSTEXPR SubscriptionResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubscriptionResponse(const SubscriptionResponse& from);
  SubscriptionResponse(SubscriptionResponse&& from) noexcept
    : SubscriptionResponse() {
    *this = ::std::move(from);
  }

  inline SubscriptionResponse& operator=(const SubscriptionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubscriptionResponse& operator=(SubscriptionResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubscriptionResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubscriptionResponse* internal_default_instance() {
    return reinterpret_cast<const SubscriptionResponse*>(
               &_SubscriptionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    42;

  friend void swap(SubscriptionResponse& a, SubscriptionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SubscriptionResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubscriptionResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubscriptionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubscriptionResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SubscriptionResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SubscriptionResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubscriptionResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SubscriptionResponse";
  }
  protected:
  explicit SubscriptionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSubListFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  int sub_list_size() const;
  private:
  int _internal_sub_list_size() const;
  public:
  void clear_sub_list();
  ::longbridge::quote::v1::SubTypeList* mutable_sub_list(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SubTypeList >*
      mutable_sub_list();
  private:
  const ::longbridge::quote::v1::SubTypeList& _internal_sub_list(int index) const;
  ::longbridge::quote::v1::SubTypeList* _internal_add_sub_list();
  public:
  const ::longbridge::quote::v1::SubTypeList& sub_list(int index) const;
  ::longbridge::quote::v1::SubTypeList* add_sub_list();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SubTypeList >&
      sub_list() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SubscriptionResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SubTypeList > sub_list_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SubTypeList final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SubTypeList) */ {
 public:
  inline SubTypeList() : SubTypeList(nullptr) {}
  ~SubTypeList() override;
  explicit PROTOBUF_CONSTEXPR SubTypeList(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubTypeList(const SubTypeList& from);
  SubTypeList(SubTypeList&& from) noexcept
    : SubTypeList() {
    *this = ::std::move(from);
  }

  inline SubTypeList& operator=(const SubTypeList& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubTypeList& operator=(SubTypeList&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubTypeList& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubTypeList* internal_default_instance() {
    return reinterpret_cast<const SubTypeList*>(
               &_SubTypeList_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    43;

  friend void swap(SubTypeList& a, SubTypeList& b) {
    a.Swap(&b);
  }
  inline void Swap(SubTypeList* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubTypeList* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubTypeList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubTypeList>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SubTypeList& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SubTypeList& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubTypeList* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SubTypeList";
  }
  protected:
  explicit SubTypeList(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSubTypeFieldNumber = 2,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  int sub_type_size() const;
  private:
  int _internal_sub_type_size() const;
  public:
  void clear_sub_type();
  private:
  ::longbridge::quote::v1::SubType _internal_sub_type(int index) const;
  void _internal_add_sub_type(::longbridge::quote::v1::SubType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_sub_type();
  public:
  ::longbridge::quote::v1::SubType sub_type(int index) const;
  void set_sub_type(int index, ::longbridge::quote::v1::SubType value);
  void add_sub_type(::longbridge::quote::v1::SubType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& sub_type() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_sub_type();

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SubTypeList)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> sub_type_;
  mutable std::atomic<int> _sub_type_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SubscribeRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SubscribeRequest) */ {
 public:
  inline SubscribeRequest() : SubscribeRequest(nullptr) {}
  ~SubscribeRequest() override;
  explicit PROTOBUF_CONSTEXPR SubscribeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubscribeRequest(const SubscribeRequest& from);
  SubscribeRequest(SubscribeRequest&& from) noexcept
    : SubscribeRequest() {
    *this = ::std::move(from);
  }

  inline SubscribeRequest& operator=(const SubscribeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubscribeRequest& operator=(SubscribeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubscribeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubscribeRequest* internal_default_instance() {
    return reinterpret_cast<const SubscribeRequest*>(
               &_SubscribeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    44;

  friend void swap(SubscribeRequest& a, SubscribeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SubscribeRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubscribeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubscribeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubscribeRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SubscribeRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SubscribeRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubscribeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SubscribeRequest";
  }
  protected:
  explicit SubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kSubTypeFieldNumber = 2,
    kIsFirstPushFieldNumber = 3,
  };
  // repeated string symbol = 1 [json_name = "symbol"];
  int symbol_size() const;
  private:
  int _internal_symbol_size() const;
  public:
  void clear_symbol();
  const std::string& symbol(int index) const;
  std::string* mutable_symbol(int index);
  void set_symbol(int index, const std::string& value);
  void set_symbol(int index, std::string&& value);
  void set_symbol(int index, const char* value);
  void set_symbol(int index, const char* value, size_t size);
  std::string* add_symbol();
  void add_symbol(const std::string& value);
  void add_symbol(std::string&& value);
  void add_symbol(const char* value);
  void add_symbol(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symbol() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symbol();
  private:
  const std::string& _internal_symbol(int index) const;
  std::string* _internal_add_symbol();
  public:

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  int sub_type_size() const;
  private:
  int _internal_sub_type_size() const;
  public:
  void clear_sub_type();
  private:
  ::longbridge::quote::v1::SubType _internal_sub_type(int index) const;
  void _internal_add_sub_type(::longbridge::quote::v1::SubType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_sub_type();
  public:
  ::longbridge::quote::v1::SubType sub_type(int index) const;
  void set_sub_type(int index, ::longbridge::quote::v1::SubType value);
  void add_sub_type(::longbridge::quote::v1::SubType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& sub_type() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_sub_type();

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  void clear_is_first_push();
  bool is_first_push() const;
  void set_is_first_push(bool value);
  private:
  bool _internal_is_first_push() const;
  void _internal_set_is_first_push(bool value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SubscribeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symbol_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> sub_type_;
  mutable std::atomic<int> _sub_type_cached_byte_size_;
  bool is_first_push_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UnsubscribeRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UnsubscribeRequest) */ {
 public:
  inline UnsubscribeRequest() : UnsubscribeRequest(nullptr) {}
  ~UnsubscribeRequest() override;
  explicit PROTOBUF_CONSTEXPR UnsubscribeRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UnsubscribeRequest(const UnsubscribeRequest& from);
  UnsubscribeRequest(UnsubscribeRequest&& from) noexcept
    : UnsubscribeRequest() {
    *this = ::std::move(from);
  }

  inline UnsubscribeRequest& operator=(const UnsubscribeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UnsubscribeRequest& operator=(UnsubscribeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UnsubscribeRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const UnsubscribeRequest* internal_default_instance() {
    return reinterpret_cast<const UnsubscribeRequest*>(
               &_UnsubscribeRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    45;

  friend void swap(UnsubscribeRequest& a, UnsubscribeRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UnsubscribeRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UnsubscribeRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UnsubscribeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UnsubscribeRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UnsubscribeRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UnsubscribeRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UnsubscribeRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UnsubscribeRequest";
  }
  protected:
  explicit UnsubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kSubTypeFieldNumber = 2,
    kUnsubAllFieldNumber = 3,
  };
  // repeated string symbol = 1 [json_name = "symbol"];
  int symbol_size() const;
  private:
  int _internal_symbol_size() const;
  public:
  void clear_symbol();
  const std::string& symbol(int index) const;
  std::string* mutable_symbol(int index);
  void set_symbol(int index, const std::string& value);
  void set_symbol(int index, std::string&& value);
  void set_symbol(int index, const char* value);
  void set_symbol(int index, const char* value, size_t size);
  std::string* add_symbol();
  void add_symbol(const std::string& value);
  void add_symbol(std::string&& value);
  void add_symbol(const char* value);
  void add_symbol(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symbol() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symbol();
  private:
  const std::string& _internal_symbol(int index) const;
  std::string* _internal_add_symbol();
  public:

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  int sub_type_size() const;
  private:
  int _internal_sub_type_size() const;
  public:
  void clear_sub_type();
  private:
  ::longbridge::quote::v1::SubType _internal_sub_type(int index) const;
  void _internal_add_sub_type(::longbridge::quote::v1::SubType value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_sub_type();
  public:
  ::longbridge::quote::v1::SubType sub_type(int index) const;
  void set_sub_type(int index, ::longbridge::quote::v1::SubType value);
  void add_sub_type(::longbridge::quote::v1::SubType value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& sub_type() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_sub_type();

  // bool unsub_all = 3 [json_name = "unsubAll"];
  void clear_unsub_all();
  bool unsub_all() const;
  void set_unsub_all(bool value);
  private:
  bool _internal_unsub_all() const;
  void _internal_set_unsub_all(bool value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UnsubscribeRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symbol_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> sub_type_;
  mutable std::atomic<int> _sub_type_cached_byte_size_;
  bool unsub_all_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UnsubscribeResponse final :
    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UnsubscribeResponse) */ {
 public:
  inline UnsubscribeResponse() : UnsubscribeResponse(nullptr) {}
  explicit PROTOBUF_CONSTEXPR UnsubscribeResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UnsubscribeResponse(const UnsubscribeResponse& from);
  UnsubscribeResponse(UnsubscribeResponse&& from) noexcept
    : UnsubscribeResponse() {
    *this = ::std::move(from);
  }

  inline UnsubscribeResponse& operator=(const UnsubscribeResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UnsubscribeResponse& operator=(UnsubscribeResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UnsubscribeResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const UnsubscribeResponse* internal_default_instance() {
    return reinterpret_cast<const UnsubscribeResponse*>(
               &_UnsubscribeResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    46;

  friend void swap(UnsubscribeResponse& a, UnsubscribeResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UnsubscribeResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UnsubscribeResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UnsubscribeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UnsubscribeResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const UnsubscribeResponse& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(this, from);
  }
  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const UnsubscribeResponse& from) {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(this, from);
  }
  public:

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UnsubscribeResponse";
  }
  protected:
  explicit UnsubscribeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UnsubscribeResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class PushQuote final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.PushQuote) */ {
 public:
  inline PushQuote() : PushQuote(nullptr) {}
  ~PushQuote() override;
  explicit PROTOBUF_CONSTEXPR PushQuote(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PushQuote(const PushQuote& from);
  PushQuote(PushQuote&& from) noexcept
    : PushQuote() {
    *this = ::std::move(from);
  }

  inline PushQuote& operator=(const PushQuote& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushQuote& operator=(PushQuote&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PushQuote& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushQuote* internal_default_instance() {
    return reinterpret_cast<const PushQuote*>(
               &_PushQuote_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    47;

  friend void swap(PushQuote& a, PushQuote& b) {
    a.Swap(&b);
  }
  inline void Swap(PushQuote* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushQuote* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PushQuote* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PushQuote>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PushQuote& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PushQuote& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PushQuote* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.PushQuote";
  }
  protected:
  explicit PushQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kLastDoneFieldNumber = 3,
    kOpenFieldNumber = 4,
    kHighFieldNumber = 5,
    kLowFieldNumber = 6,
    kTurnoverFieldNumber = 9,
    kCurrentTurnoverFieldNumber = 13,
    kSequenceFieldNumber = 2,
    kTimestampFieldNumber = 7,
    kVolumeFieldNumber = 8,
    kTradeStatusFieldNumber = 10,
    kTradeSessionFieldNumber = 11,
    kCurrentVolumeFieldNumber = 12,
    kTagFieldNumber = 14,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string last_done = 3 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string open = 4 [json_name = "open"];
  void clear_open();
  const std::string& open() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_open(ArgT0&& arg0, ArgT... args);
  std::string* mutable_open();
  PROTOBUF_NODISCARD std::string* release_open();
  void set_allocated_open(std::string* open);
  private:
  const std::string& _internal_open() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_open(const std::string& value);
  std::string* _internal_mutable_open();
  public:

  // string high = 5 [json_name = "high"];
  void clear_high();
  const std::string& high() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_high(ArgT0&& arg0, ArgT... args);
  std::string* mutable_high();
  PROTOBUF_NODISCARD std::string* release_high();
  void set_allocated_high(std::string* high);
  private:
  const std::string& _internal_high() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_high(const std::string& value);
  std::string* _internal_mutable_high();
  public:

  // string low = 6 [json_name = "low"];
  void clear_low();
  const std::string& low() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_low(ArgT0&& arg0, ArgT... args);
  std::string* mutable_low();
  PROTOBUF_NODISCARD std::string* release_low();
  void set_allocated_low(std::string* low);
  private:
  const std::string& _internal_low() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_low(const std::string& value);
  std::string* _internal_mutable_low();
  public:

  // string turnover = 9 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // string current_turnover = 13 [json_name = "currentTurnover"];
  void clear_current_turnover();
  const std::string& current_turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_current_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_current_turnover();
  PROTOBUF_NODISCARD std::string* release_current_turnover();
  void set_allocated_current_turnover(std::string* current_turnover);
  private:
  const std::string& _internal_current_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_current_turnover(const std::string& value);
  std::string* _internal_mutable_current_turnover();
  public:

  // int64 sequence = 2 [json_name = "sequence"];
  void clear_sequence();
  int64_t sequence() const;
  void set_sequence(int64_t value);
  private:
  int64_t _internal_sequence() const;
  void _internal_set_sequence(int64_t value);
  public:

  // int64 timestamp = 7 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // int64 volume = 8 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  void clear_trade_status();
  ::longbridge::quote::v1::TradeStatus trade_status() const;
  void set_trade_status(::longbridge::quote::v1::TradeStatus value);
  private:
  ::longbridge::quote::v1::TradeStatus _internal_trade_status() const;
  void _internal_set_trade_status(::longbridge::quote::v1::TradeStatus value);
  public:

  // .longbridge.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  void clear_trade_session();
  ::longbridge::quote::v1::TradeSession trade_session() const;
  void set_trade_session(::longbridge::quote::v1::TradeSession value);
  private:
  ::longbridge::quote::v1::TradeSession _internal_trade_session() const;
  void _internal_set_trade_session(::longbridge::quote::v1::TradeSession value);
  public:

  // int64 current_volume = 12 [json_name = "currentVolume"];
  void clear_current_volume();
  int64_t current_volume() const;
  void set_current_volume(int64_t value);
  private:
  int64_t _internal_current_volume() const;
  void _internal_set_current_volume(int64_t value);
  public:

  // .longbridge.quote.v1.PushQuoteTag tag = 14 [json_name = "tag"];
  void clear_tag();
  ::longbridge::quote::v1::PushQuoteTag tag() const;
  void set_tag(::longbridge::quote::v1::PushQuoteTag value);
  private:
  ::longbridge::quote::v1::PushQuoteTag _internal_tag() const;
  void _internal_set_tag(::longbridge::quote::v1::PushQuoteTag value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.PushQuote)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr open_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr high_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr low_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr current_turnover_;
  int64_t sequence_;
  int64_t timestamp_;
  int64_t volume_;
  int trade_status_;
  int trade_session_;
  int64_t current_volume_;
  int tag_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class PushDepth final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.PushDepth) */ {
 public:
  inline PushDepth() : PushDepth(nullptr) {}
  ~PushDepth() override;
  explicit PROTOBUF_CONSTEXPR PushDepth(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PushDepth(const PushDepth& from);
  PushDepth(PushDepth&& from) noexcept
    : PushDepth() {
    *this = ::std::move(from);
  }

  inline PushDepth& operator=(const PushDepth& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushDepth& operator=(PushDepth&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PushDepth& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushDepth* internal_default_instance() {
    return reinterpret_cast<const PushDepth*>(
               &_PushDepth_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    48;

  friend void swap(PushDepth& a, PushDepth& b) {
    a.Swap(&b);
  }
  inline void Swap(PushDepth* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushDepth* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PushDepth* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PushDepth>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PushDepth& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PushDepth& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PushDepth* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.PushDepth";
  }
  protected:
  explicit PushDepth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAskFieldNumber = 3,
    kBidFieldNumber = 4,
    kSymbolFieldNumber = 1,
    kSequenceFieldNumber = 2,
  };
  // repeated .longbridge.quote.v1.Depth ask = 3 [json_name = "ask"];
  int ask_size() const;
  private:
  int _internal_ask_size() const;
  public:
  void clear_ask();
  ::longbridge::quote::v1::Depth* mutable_ask(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
      mutable_ask();
  private:
  const ::longbridge::quote::v1::Depth& _internal_ask(int index) const;
  ::longbridge::quote::v1::Depth* _internal_add_ask();
  public:
  const ::longbridge::quote::v1::Depth& ask(int index) const;
  ::longbridge::quote::v1::Depth* add_ask();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
      ask() const;

  // repeated .longbridge.quote.v1.Depth bid = 4 [json_name = "bid"];
  int bid_size() const;
  private:
  int _internal_bid_size() const;
  public:
  void clear_bid();
  ::longbridge::quote::v1::Depth* mutable_bid(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
      mutable_bid();
  private:
  const ::longbridge::quote::v1::Depth& _internal_bid(int index) const;
  ::longbridge::quote::v1::Depth* _internal_add_bid();
  public:
  const ::longbridge::quote::v1::Depth& bid(int index) const;
  ::longbridge::quote::v1::Depth* add_bid();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
      bid() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // int64 sequence = 2 [json_name = "sequence"];
  void clear_sequence();
  int64_t sequence() const;
  void set_sequence(int64_t value);
  private:
  int64_t _internal_sequence() const;
  void _internal_set_sequence(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.PushDepth)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth > ask_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth > bid_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int64_t sequence_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class PushBrokers final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.PushBrokers) */ {
 public:
  inline PushBrokers() : PushBrokers(nullptr) {}
  ~PushBrokers() override;
  explicit PROTOBUF_CONSTEXPR PushBrokers(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PushBrokers(const PushBrokers& from);
  PushBrokers(PushBrokers&& from) noexcept
    : PushBrokers() {
    *this = ::std::move(from);
  }

  inline PushBrokers& operator=(const PushBrokers& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushBrokers& operator=(PushBrokers&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PushBrokers& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushBrokers* internal_default_instance() {
    return reinterpret_cast<const PushBrokers*>(
               &_PushBrokers_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    49;

  friend void swap(PushBrokers& a, PushBrokers& b) {
    a.Swap(&b);
  }
  inline void Swap(PushBrokers* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushBrokers* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PushBrokers* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PushBrokers>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PushBrokers& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PushBrokers& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PushBrokers* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.PushBrokers";
  }
  protected:
  explicit PushBrokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAskBrokersFieldNumber = 3,
    kBidBrokersFieldNumber = 4,
    kSymbolFieldNumber = 1,
    kSequenceFieldNumber = 2,
  };
  // repeated .longbridge.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  int ask_brokers_size() const;
  private:
  int _internal_ask_brokers_size() const;
  public:
  void clear_ask_brokers();
  ::longbridge::quote::v1::Brokers* mutable_ask_brokers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
      mutable_ask_brokers();
  private:
  const ::longbridge::quote::v1::Brokers& _internal_ask_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* _internal_add_ask_brokers();
  public:
  const ::longbridge::quote::v1::Brokers& ask_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* add_ask_brokers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
      ask_brokers() const;

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  int bid_brokers_size() const;
  private:
  int _internal_bid_brokers_size() const;
  public:
  void clear_bid_brokers();
  ::longbridge::quote::v1::Brokers* mutable_bid_brokers(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
      mutable_bid_brokers();
  private:
  const ::longbridge::quote::v1::Brokers& _internal_bid_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* _internal_add_bid_brokers();
  public:
  const ::longbridge::quote::v1::Brokers& bid_brokers(int index) const;
  ::longbridge::quote::v1::Brokers* add_bid_brokers();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
      bid_brokers() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // int64 sequence = 2 [json_name = "sequence"];
  void clear_sequence();
  int64_t sequence() const;
  void set_sequence(int64_t value);
  private:
  int64_t _internal_sequence() const;
  void _internal_set_sequence(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.PushBrokers)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers > ask_brokers_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers > bid_brokers_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int64_t sequence_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class PushTrade final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.PushTrade) */ {
 public:
  inline PushTrade() : PushTrade(nullptr) {}
  ~PushTrade() override;
  explicit PROTOBUF_CONSTEXPR PushTrade(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PushTrade(const PushTrade& from);
  PushTrade(PushTrade&& from) noexcept
    : PushTrade() {
    *this = ::std::move(from);
  }

  inline PushTrade& operator=(const PushTrade& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushTrade& operator=(PushTrade&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PushTrade& default_instance() {
    return *internal_default_instance();
  }
  static inline const PushTrade* internal_default_instance() {
    return reinterpret_cast<const PushTrade*>(
               &_PushTrade_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    50;

  friend void swap(PushTrade& a, PushTrade& b) {
    a.Swap(&b);
  }
  inline void Swap(PushTrade* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushTrade* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PushTrade* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PushTrade>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PushTrade& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const PushTrade& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PushTrade* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.PushTrade";
  }
  protected:
  explicit PushTrade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTradeFieldNumber = 3,
    kSymbolFieldNumber = 1,
    kSequenceFieldNumber = 2,
  };
  // repeated .longbridge.quote.v1.Trade trade = 3 [json_name = "trade"];
  int trade_size() const;
  private:
  int _internal_trade_size() const;
  public:
  void clear_trade();
  ::longbridge::quote::v1::Trade* mutable_trade(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >*
      mutable_trade();
  private:
  const ::longbridge::quote::v1::Trade& _internal_trade(int index) const;
  ::longbridge::quote::v1::Trade* _internal_add_trade();
  public:
  const ::longbridge::quote::v1::Trade& trade(int index) const;
  ::longbridge::quote::v1::Trade* add_trade();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >&
      trade() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // int64 sequence = 2 [json_name = "sequence"];
  void clear_sequence();
  int64_t sequence() const;
  void set_sequence(int64_t value);
  private:
  int64_t _internal_sequence() const;
  void _internal_set_sequence(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.PushTrade)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade > trade_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  int64_t sequence_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class MarketTradeDayRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.MarketTradeDayRequest) */ {
 public:
  inline MarketTradeDayRequest() : MarketTradeDayRequest(nullptr) {}
  ~MarketTradeDayRequest() override;
  explicit PROTOBUF_CONSTEXPR MarketTradeDayRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MarketTradeDayRequest(const MarketTradeDayRequest& from);
  MarketTradeDayRequest(MarketTradeDayRequest&& from) noexcept
    : MarketTradeDayRequest() {
    *this = ::std::move(from);
  }

  inline MarketTradeDayRequest& operator=(const MarketTradeDayRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline MarketTradeDayRequest& operator=(MarketTradeDayRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MarketTradeDayRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const MarketTradeDayRequest* internal_default_instance() {
    return reinterpret_cast<const MarketTradeDayRequest*>(
               &_MarketTradeDayRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    51;

  friend void swap(MarketTradeDayRequest& a, MarketTradeDayRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(MarketTradeDayRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MarketTradeDayRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MarketTradeDayRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MarketTradeDayRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MarketTradeDayRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const MarketTradeDayRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MarketTradeDayRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.MarketTradeDayRequest";
  }
  protected:
  explicit MarketTradeDayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kMarketFieldNumber = 1,
    kBegDayFieldNumber = 2,
    kEndDayFieldNumber = 3,
  };
  // string market = 1 [json_name = "market"];
  void clear_market();
  const std::string& market() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_market(ArgT0&& arg0, ArgT... args);
  std::string* mutable_market();
  PROTOBUF_NODISCARD std::string* release_market();
  void set_allocated_market(std::string* market);
  private:
  const std::string& _internal_market() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_market(const std::string& value);
  std::string* _internal_mutable_market();
  public:

  // string beg_day = 2 [json_name = "begDay"];
  void clear_beg_day();
  const std::string& beg_day() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_beg_day(ArgT0&& arg0, ArgT... args);
  std::string* mutable_beg_day();
  PROTOBUF_NODISCARD std::string* release_beg_day();
  void set_allocated_beg_day(std::string* beg_day);
  private:
  const std::string& _internal_beg_day() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_beg_day(const std::string& value);
  std::string* _internal_mutable_beg_day();
  public:

  // string end_day = 3 [json_name = "endDay"];
  void clear_end_day();
  const std::string& end_day() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_end_day(ArgT0&& arg0, ArgT... args);
  std::string* mutable_end_day();
  PROTOBUF_NODISCARD std::string* release_end_day();
  void set_allocated_end_day(std::string* end_day);
  private:
  const std::string& _internal_end_day() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_end_day(const std::string& value);
  std::string* _internal_mutable_end_day();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.MarketTradeDayRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr market_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr beg_day_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr end_day_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class MarketTradeDayResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.MarketTradeDayResponse) */ {
 public:
  inline MarketTradeDayResponse() : MarketTradeDayResponse(nullptr) {}
  ~MarketTradeDayResponse() override;
  explicit PROTOBUF_CONSTEXPR MarketTradeDayResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MarketTradeDayResponse(const MarketTradeDayResponse& from);
  MarketTradeDayResponse(MarketTradeDayResponse&& from) noexcept
    : MarketTradeDayResponse() {
    *this = ::std::move(from);
  }

  inline MarketTradeDayResponse& operator=(const MarketTradeDayResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline MarketTradeDayResponse& operator=(MarketTradeDayResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MarketTradeDayResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const MarketTradeDayResponse* internal_default_instance() {
    return reinterpret_cast<const MarketTradeDayResponse*>(
               &_MarketTradeDayResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    52;

  friend void swap(MarketTradeDayResponse& a, MarketTradeDayResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(MarketTradeDayResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MarketTradeDayResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MarketTradeDayResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MarketTradeDayResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MarketTradeDayResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const MarketTradeDayResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MarketTradeDayResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.MarketTradeDayResponse";
  }
  protected:
  explicit MarketTradeDayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTradeDayFieldNumber = 1,
    kHalfTradeDayFieldNumber = 2,
  };
  // repeated string trade_day = 1 [json_name = "tradeDay"];
  int trade_day_size() const;
  private:
  int _internal_trade_day_size() const;
  public:
  void clear_trade_day();
  const std::string& trade_day(int index) const;
  std::string* mutable_trade_day(int index);
  void set_trade_day(int index, const std::string& value);
  void set_trade_day(int index, std::string&& value);
  void set_trade_day(int index, const char* value);
  void set_trade_day(int index, const char* value, size_t size);
  std::string* add_trade_day();
  void add_trade_day(const std::string& value);
  void add_trade_day(std::string&& value);
  void add_trade_day(const char* value);
  void add_trade_day(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& trade_day() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_trade_day();
  private:
  const std::string& _internal_trade_day(int index) const;
  std::string* _internal_add_trade_day();
  public:

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  int half_trade_day_size() const;
  private:
  int _internal_half_trade_day_size() const;
  public:
  void clear_half_trade_day();
  const std::string& half_trade_day(int index) const;
  std::string* mutable_half_trade_day(int index);
  void set_half_trade_day(int index, const std::string& value);
  void set_half_trade_day(int index, std::string&& value);
  void set_half_trade_day(int index, const char* value);
  void set_half_trade_day(int index, const char* value, size_t size);
  std::string* add_half_trade_day();
  void add_half_trade_day(const std::string& value);
  void add_half_trade_day(std::string&& value);
  void add_half_trade_day(const char* value);
  void add_half_trade_day(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& half_trade_day() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_half_trade_day();
  private:
  const std::string& _internal_half_trade_day(int index) const;
  std::string* _internal_add_half_trade_day();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.MarketTradeDayResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> trade_day_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> half_trade_day_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class CapitalFlowIntradayRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.CapitalFlowIntradayRequest) */ {
 public:
  inline CapitalFlowIntradayRequest() : CapitalFlowIntradayRequest(nullptr) {}
  ~CapitalFlowIntradayRequest() override;
  explicit PROTOBUF_CONSTEXPR CapitalFlowIntradayRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CapitalFlowIntradayRequest(const CapitalFlowIntradayRequest& from);
  CapitalFlowIntradayRequest(CapitalFlowIntradayRequest&& from) noexcept
    : CapitalFlowIntradayRequest() {
    *this = ::std::move(from);
  }

  inline CapitalFlowIntradayRequest& operator=(const CapitalFlowIntradayRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CapitalFlowIntradayRequest& operator=(CapitalFlowIntradayRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CapitalFlowIntradayRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const CapitalFlowIntradayRequest* internal_default_instance() {
    return reinterpret_cast<const CapitalFlowIntradayRequest*>(
               &_CapitalFlowIntradayRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    53;

  friend void swap(CapitalFlowIntradayRequest& a, CapitalFlowIntradayRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CapitalFlowIntradayRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CapitalFlowIntradayRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CapitalFlowIntradayRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CapitalFlowIntradayRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CapitalFlowIntradayRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const CapitalFlowIntradayRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CapitalFlowIntradayRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.CapitalFlowIntradayRequest";
  }
  protected:
  explicit CapitalFlowIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.CapitalFlowIntradayRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class CapitalFlowIntradayResponse_CapitalFlowLine final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine) */ {
 public:
  inline CapitalFlowIntradayResponse_CapitalFlowLine() : CapitalFlowIntradayResponse_CapitalFlowLine(nullptr) {}
  ~CapitalFlowIntradayResponse_CapitalFlowLine() override;
  explicit PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse_CapitalFlowLine(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CapitalFlowIntradayResponse_CapitalFlowLine(const CapitalFlowIntradayResponse_CapitalFlowLine& from);
  CapitalFlowIntradayResponse_CapitalFlowLine(CapitalFlowIntradayResponse_CapitalFlowLine&& from) noexcept
    : CapitalFlowIntradayResponse_CapitalFlowLine() {
    *this = ::std::move(from);
  }

  inline CapitalFlowIntradayResponse_CapitalFlowLine& operator=(const CapitalFlowIntradayResponse_CapitalFlowLine& from) {
    CopyFrom(from);
    return *this;
  }
  inline CapitalFlowIntradayResponse_CapitalFlowLine& operator=(CapitalFlowIntradayResponse_CapitalFlowLine&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CapitalFlowIntradayResponse_CapitalFlowLine& default_instance() {
    return *internal_default_instance();
  }
  static inline const CapitalFlowIntradayResponse_CapitalFlowLine* internal_default_instance() {
    return reinterpret_cast<const CapitalFlowIntradayResponse_CapitalFlowLine*>(
               &_CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    54;

  friend void swap(CapitalFlowIntradayResponse_CapitalFlowLine& a, CapitalFlowIntradayResponse_CapitalFlowLine& b) {
    a.Swap(&b);
  }
  inline void Swap(CapitalFlowIntradayResponse_CapitalFlowLine* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CapitalFlowIntradayResponse_CapitalFlowLine* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CapitalFlowIntradayResponse_CapitalFlowLine* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CapitalFlowIntradayResponse_CapitalFlowLine>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CapitalFlowIntradayResponse_CapitalFlowLine& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const CapitalFlowIntradayResponse_CapitalFlowLine& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CapitalFlowIntradayResponse_CapitalFlowLine* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine";
  }
  protected:
  explicit CapitalFlowIntradayResponse_CapitalFlowLine(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kInflowFieldNumber = 1,
    kTimestampFieldNumber = 2,
  };
  // string inflow = 1 [json_name = "inflow"];
  void clear_inflow();
  const std::string& inflow() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_inflow(ArgT0&& arg0, ArgT... args);
  std::string* mutable_inflow();
  PROTOBUF_NODISCARD std::string* release_inflow();
  void set_allocated_inflow(std::string* inflow);
  private:
  const std::string& _internal_inflow() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_inflow(const std::string& value);
  std::string* _internal_mutable_inflow();
  public:

  // int64 timestamp = 2 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr inflow_;
  int64_t timestamp_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class CapitalFlowIntradayResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.CapitalFlowIntradayResponse) */ {
 public:
  inline CapitalFlowIntradayResponse() : CapitalFlowIntradayResponse(nullptr) {}
  ~CapitalFlowIntradayResponse() override;
  explicit PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CapitalFlowIntradayResponse(const CapitalFlowIntradayResponse& from);
  CapitalFlowIntradayResponse(CapitalFlowIntradayResponse&& from) noexcept
    : CapitalFlowIntradayResponse() {
    *this = ::std::move(from);
  }

  inline CapitalFlowIntradayResponse& operator=(const CapitalFlowIntradayResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CapitalFlowIntradayResponse& operator=(CapitalFlowIntradayResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CapitalFlowIntradayResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const CapitalFlowIntradayResponse* internal_default_instance() {
    return reinterpret_cast<const CapitalFlowIntradayResponse*>(
               &_CapitalFlowIntradayResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    55;

  friend void swap(CapitalFlowIntradayResponse& a, CapitalFlowIntradayResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CapitalFlowIntradayResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CapitalFlowIntradayResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CapitalFlowIntradayResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CapitalFlowIntradayResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CapitalFlowIntradayResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const CapitalFlowIntradayResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CapitalFlowIntradayResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.CapitalFlowIntradayResponse";
  }
  protected:
  explicit CapitalFlowIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef CapitalFlowIntradayResponse_CapitalFlowLine CapitalFlowLine;

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

  enum : int {
    kCapitalFlowLinesFieldNumber = 2,
    kSymbolFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
  int capital_flow_lines_size() const;
  private:
  int _internal_capital_flow_lines_size() const;
  public:
  void clear_capital_flow_lines();
  ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* mutable_capital_flow_lines(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >*
      mutable_capital_flow_lines();
  private:
  const ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine& _internal_capital_flow_lines(int index) const;
  ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* _internal_add_capital_flow_lines();
  public:
  const ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine& capital_flow_lines(int index) const;
  ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* add_capital_flow_lines();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >&
      capital_flow_lines() const;

  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.CapitalFlowIntradayResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine > capital_flow_lines_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class CapitalDistributionResponse_CapitalDistribution final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution) */ {
 public:
  inline CapitalDistributionResponse_CapitalDistribution() : CapitalDistributionResponse_CapitalDistribution(nullptr) {}
  ~CapitalDistributionResponse_CapitalDistribution() override;
  explicit PROTOBUF_CONSTEXPR CapitalDistributionResponse_CapitalDistribution(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CapitalDistributionResponse_CapitalDistribution(const CapitalDistributionResponse_CapitalDistribution& from);
  CapitalDistributionResponse_CapitalDistribution(CapitalDistributionResponse_CapitalDistribution&& from) noexcept
    : CapitalDistributionResponse_CapitalDistribution() {
    *this = ::std::move(from);
  }

  inline CapitalDistributionResponse_CapitalDistribution& operator=(const CapitalDistributionResponse_CapitalDistribution& from) {
    CopyFrom(from);
    return *this;
  }
  inline CapitalDistributionResponse_CapitalDistribution& operator=(CapitalDistributionResponse_CapitalDistribution&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CapitalDistributionResponse_CapitalDistribution& default_instance() {
    return *internal_default_instance();
  }
  static inline const CapitalDistributionResponse_CapitalDistribution* internal_default_instance() {
    return reinterpret_cast<const CapitalDistributionResponse_CapitalDistribution*>(
               &_CapitalDistributionResponse_CapitalDistribution_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    56;

  friend void swap(CapitalDistributionResponse_CapitalDistribution& a, CapitalDistributionResponse_CapitalDistribution& b) {
    a.Swap(&b);
  }
  inline void Swap(CapitalDistributionResponse_CapitalDistribution* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CapitalDistributionResponse_CapitalDistribution* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CapitalDistributionResponse_CapitalDistribution* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CapitalDistributionResponse_CapitalDistribution>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CapitalDistributionResponse_CapitalDistribution& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const CapitalDistributionResponse_CapitalDistribution& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CapitalDistributionResponse_CapitalDistribution* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution";
  }
  protected:
  explicit CapitalDistributionResponse_CapitalDistribution(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLargeFieldNumber = 1,
    kMediumFieldNumber = 2,
    kSmallFieldNumber = 3,
  };
  // string large = 1 [json_name = "large"];
  void clear_large();
  const std::string& large() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_large(ArgT0&& arg0, ArgT... args);
  std::string* mutable_large();
  PROTOBUF_NODISCARD std::string* release_large();
  void set_allocated_large(std::string* large);
  private:
  const std::string& _internal_large() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_large(const std::string& value);
  std::string* _internal_mutable_large();
  public:

  // string medium = 2 [json_name = "medium"];
  void clear_medium();
  const std::string& medium() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_medium(ArgT0&& arg0, ArgT... args);
  std::string* mutable_medium();
  PROTOBUF_NODISCARD std::string* release_medium();
  void set_allocated_medium(std::string* medium);
  private:
  const std::string& _internal_medium() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_medium(const std::string& value);
  std::string* _internal_mutable_medium();
  public:

  // string small = 3 [json_name = "small"];
  void clear_small();
  const std::string& small() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_small(ArgT0&& arg0, ArgT... args);
  std::string* mutable_small();
  PROTOBUF_NODISCARD std::string* release_small();
  void set_allocated_small(std::string* small);
  private:
  const std::string& _internal_small() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_small(const std::string& value);
  std::string* _internal_mutable_small();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr large_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr medium_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr small_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class CapitalDistributionResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.CapitalDistributionResponse) */ {
 public:
  inline CapitalDistributionResponse() : CapitalDistributionResponse(nullptr) {}
  ~CapitalDistributionResponse() override;
  explicit PROTOBUF_CONSTEXPR CapitalDistributionResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CapitalDistributionResponse(const CapitalDistributionResponse& from);
  CapitalDistributionResponse(CapitalDistributionResponse&& from) noexcept
    : CapitalDistributionResponse() {
    *this = ::std::move(from);
  }

  inline CapitalDistributionResponse& operator=(const CapitalDistributionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CapitalDistributionResponse& operator=(CapitalDistributionResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const CapitalDistributionResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const CapitalDistributionResponse* internal_default_instance() {
    return reinterpret_cast<const CapitalDistributionResponse*>(
               &_CapitalDistributionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    57;

  friend void swap(CapitalDistributionResponse& a, CapitalDistributionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CapitalDistributionResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CapitalDistributionResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  CapitalDistributionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CapitalDistributionResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const CapitalDistributionResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const CapitalDistributionResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CapitalDistributionResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.CapitalDistributionResponse";
  }
  protected:
  explicit CapitalDistributionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef CapitalDistributionResponse_CapitalDistribution CapitalDistribution;

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

  enum : int {
    kSymbolFieldNumber = 1,
    kCapitalInFieldNumber = 3,
    kCapitalOutFieldNumber = 4,
    kTimestampFieldNumber = 2,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
  bool has_capital_in() const;
  private:
  bool _internal_has_capital_in() const;
  public:
  void clear_capital_in();
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_in() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* release_capital_in();
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* mutable_capital_in();
  void set_allocated_capital_in(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_in);
  private:
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& _internal_capital_in() const;
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* _internal_mutable_capital_in();
  public:
  void unsafe_arena_set_allocated_capital_in(
      ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_in);
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* unsafe_arena_release_capital_in();

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
  bool has_capital_out() const;
  private:
  bool _internal_has_capital_out() const;
  public:
  void clear_capital_out();
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_out() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* release_capital_out();
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* mutable_capital_out();
  void set_allocated_capital_out(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_out);
  private:
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& _internal_capital_out() const;
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* _internal_mutable_capital_out();
  public:
  void unsafe_arena_set_allocated_capital_out(
      ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_out);
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* unsafe_arena_release_capital_out();

  // int64 timestamp = 2 [json_name = "timestamp"];
  void clear_timestamp();
  int64_t timestamp() const;
  void set_timestamp(int64_t value);
  private:
  int64_t _internal_timestamp() const;
  void _internal_set_timestamp(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.CapitalDistributionResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_in_;
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_out_;
  int64_t timestamp_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityCalcQuoteRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityCalcQuoteRequest) */ {
 public:
  inline SecurityCalcQuoteRequest() : SecurityCalcQuoteRequest(nullptr) {}
  ~SecurityCalcQuoteRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityCalcQuoteRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityCalcQuoteRequest(const SecurityCalcQuoteRequest& from);
  SecurityCalcQuoteRequest(SecurityCalcQuoteRequest&& from) noexcept
    : SecurityCalcQuoteRequest() {
    *this = ::std::move(from);
  }

  inline SecurityCalcQuoteRequest& operator=(const SecurityCalcQuoteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityCalcQuoteRequest& operator=(SecurityCalcQuoteRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityCalcQuoteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityCalcQuoteRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityCalcQuoteRequest*>(
               &_SecurityCalcQuoteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    58;

  friend void swap(SecurityCalcQuoteRequest& a, SecurityCalcQuoteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityCalcQuoteRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityCalcQuoteRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityCalcQuoteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityCalcQuoteRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityCalcQuoteRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityCalcQuoteRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityCalcQuoteRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityCalcQuoteRequest";
  }
  protected:
  explicit SecurityCalcQuoteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolsFieldNumber = 1,
    kCalcIndexFieldNumber = 2,
  };
  // repeated string symbols = 1 [json_name = "symbols"];
  int symbols_size() const;
  private:
  int _internal_symbols_size() const;
  public:
  void clear_symbols();
  const std::string& symbols(int index) const;
  std::string* mutable_symbols(int index);
  void set_symbols(int index, const std::string& value);
  void set_symbols(int index, std::string&& value);
  void set_symbols(int index, const char* value);
  void set_symbols(int index, const char* value, size_t size);
  std::string* add_symbols();
  void add_symbols(const std::string& value);
  void add_symbols(std::string&& value);
  void add_symbols(const char* value);
  void add_symbols(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& symbols() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_symbols();
  private:
  const std::string& _internal_symbols(int index) const;
  std::string* _internal_add_symbols();
  public:

  // repeated .longbridge.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
  int calc_index_size() const;
  private:
  int _internal_calc_index_size() const;
  public:
  void clear_calc_index();
  private:
  ::longbridge::quote::v1::CalcIndex _internal_calc_index(int index) const;
  void _internal_add_calc_index(::longbridge::quote::v1::CalcIndex value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_calc_index();
  public:
  ::longbridge::quote::v1::CalcIndex calc_index(int index) const;
  void set_calc_index(int index, ::longbridge::quote::v1::CalcIndex value);
  void add_calc_index(::longbridge::quote::v1::CalcIndex value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& calc_index() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_calc_index();

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityCalcQuoteRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> symbols_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> calc_index_;
  mutable std::atomic<int> _calc_index_cached_byte_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityCalcIndex final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityCalcIndex) */ {
 public:
  inline SecurityCalcIndex() : SecurityCalcIndex(nullptr) {}
  ~SecurityCalcIndex() override;
  explicit PROTOBUF_CONSTEXPR SecurityCalcIndex(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityCalcIndex(const SecurityCalcIndex& from);
  SecurityCalcIndex(SecurityCalcIndex&& from) noexcept
    : SecurityCalcIndex() {
    *this = ::std::move(from);
  }

  inline SecurityCalcIndex& operator=(const SecurityCalcIndex& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityCalcIndex& operator=(SecurityCalcIndex&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityCalcIndex& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityCalcIndex* internal_default_instance() {
    return reinterpret_cast<const SecurityCalcIndex*>(
               &_SecurityCalcIndex_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    59;

  friend void swap(SecurityCalcIndex& a, SecurityCalcIndex& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityCalcIndex* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityCalcIndex* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityCalcIndex* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityCalcIndex>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityCalcIndex& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityCalcIndex& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityCalcIndex* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityCalcIndex";
  }
  protected:
  explicit SecurityCalcIndex(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSymbolFieldNumber = 1,
    kLastDoneFieldNumber = 2,
    kChangeValFieldNumber = 3,
    kChangeRateFieldNumber = 4,
    kTurnoverFieldNumber = 6,
    kYtdChangeRateFieldNumber = 7,
    kTurnoverRateFieldNumber = 8,
    kTotalMarketValueFieldNumber = 9,
    kCapitalFlowFieldNumber = 10,
    kAmplitudeFieldNumber = 11,
    kVolumeRatioFieldNumber = 12,
    kPeTtmRatioFieldNumber = 13,
    kPbRatioFieldNumber = 14,
    kDividendRatioTtmFieldNumber = 15,
    kFiveDayChangeRateFieldNumber = 16,
    kTenDayChangeRateFieldNumber = 17,
    kHalfYearChangeRateFieldNumber = 18,
    kFiveMinutesChangeRateFieldNumber = 19,
    kExpiryDateFieldNumber = 20,
    kStrikePriceFieldNumber = 21,
    kUpperStrikePriceFieldNumber = 22,
    kLowerStrikePriceFieldNumber = 23,
    kOutstandingRatioFieldNumber = 25,
    kPremiumFieldNumber = 26,
    kItmOtmFieldNumber = 27,
    kImpliedVolatilityFieldNumber = 28,
    kWarrantDeltaFieldNumber = 29,
    kCallPriceFieldNumber = 30,
    kToCallPriceFieldNumber = 31,
    kEffectiveLeverageFieldNumber = 32,
    kLeverageRatioFieldNumber = 33,
    kConversionRatioFieldNumber = 34,
    kBalancePointFieldNumber = 35,
    kDeltaFieldNumber = 37,
    kGammaFieldNumber = 38,
    kThetaFieldNumber = 39,
    kVegaFieldNumber = 40,
    kRhoFieldNumber = 41,
    kVolumeFieldNumber = 5,
    kOutstandingQtyFieldNumber = 24,
    kOpenInterestFieldNumber = 36,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // string last_done = 2 [json_name = "lastDone"];
  void clear_last_done();
  const std::string& last_done() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_last_done(ArgT0&& arg0, ArgT... args);
  std::string* mutable_last_done();
  PROTOBUF_NODISCARD std::string* release_last_done();
  void set_allocated_last_done(std::string* last_done);
  private:
  const std::string& _internal_last_done() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_done(const std::string& value);
  std::string* _internal_mutable_last_done();
  public:

  // string change_val = 3 [json_name = "changeVal"];
  void clear_change_val();
  const std::string& change_val() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_change_val(ArgT0&& arg0, ArgT... args);
  std::string* mutable_change_val();
  PROTOBUF_NODISCARD std::string* release_change_val();
  void set_allocated_change_val(std::string* change_val);
  private:
  const std::string& _internal_change_val() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_change_val(const std::string& value);
  std::string* _internal_mutable_change_val();
  public:

  // string change_rate = 4 [json_name = "changeRate"];
  void clear_change_rate();
  const std::string& change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_change_rate();
  PROTOBUF_NODISCARD std::string* release_change_rate();
  void set_allocated_change_rate(std::string* change_rate);
  private:
  const std::string& _internal_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_change_rate(const std::string& value);
  std::string* _internal_mutable_change_rate();
  public:

  // string turnover = 6 [json_name = "turnover"];
  void clear_turnover();
  const std::string& turnover() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover();
  PROTOBUF_NODISCARD std::string* release_turnover();
  void set_allocated_turnover(std::string* turnover);
  private:
  const std::string& _internal_turnover() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover(const std::string& value);
  std::string* _internal_mutable_turnover();
  public:

  // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
  void clear_ytd_change_rate();
  const std::string& ytd_change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_ytd_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_ytd_change_rate();
  PROTOBUF_NODISCARD std::string* release_ytd_change_rate();
  void set_allocated_ytd_change_rate(std::string* ytd_change_rate);
  private:
  const std::string& _internal_ytd_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ytd_change_rate(const std::string& value);
  std::string* _internal_mutable_ytd_change_rate();
  public:

  // string turnover_rate = 8 [json_name = "turnoverRate"];
  void clear_turnover_rate();
  const std::string& turnover_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_turnover_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_turnover_rate();
  PROTOBUF_NODISCARD std::string* release_turnover_rate();
  void set_allocated_turnover_rate(std::string* turnover_rate);
  private:
  const std::string& _internal_turnover_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_turnover_rate(const std::string& value);
  std::string* _internal_mutable_turnover_rate();
  public:

  // string total_market_value = 9 [json_name = "totalMarketValue"];
  void clear_total_market_value();
  const std::string& total_market_value() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_total_market_value(ArgT0&& arg0, ArgT... args);
  std::string* mutable_total_market_value();
  PROTOBUF_NODISCARD std::string* release_total_market_value();
  void set_allocated_total_market_value(std::string* total_market_value);
  private:
  const std::string& _internal_total_market_value() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_total_market_value(const std::string& value);
  std::string* _internal_mutable_total_market_value();
  public:

  // string capital_flow = 10 [json_name = "capitalFlow"];
  void clear_capital_flow();
  const std::string& capital_flow() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_capital_flow(ArgT0&& arg0, ArgT... args);
  std::string* mutable_capital_flow();
  PROTOBUF_NODISCARD std::string* release_capital_flow();
  void set_allocated_capital_flow(std::string* capital_flow);
  private:
  const std::string& _internal_capital_flow() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_capital_flow(const std::string& value);
  std::string* _internal_mutable_capital_flow();
  public:

  // string amplitude = 11 [json_name = "amplitude"];
  void clear_amplitude();
  const std::string& amplitude() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_amplitude(ArgT0&& arg0, ArgT... args);
  std::string* mutable_amplitude();
  PROTOBUF_NODISCARD std::string* release_amplitude();
  void set_allocated_amplitude(std::string* amplitude);
  private:
  const std::string& _internal_amplitude() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_amplitude(const std::string& value);
  std::string* _internal_mutable_amplitude();
  public:

  // string volume_ratio = 12 [json_name = "volumeRatio"];
  void clear_volume_ratio();
  const std::string& volume_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_volume_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_volume_ratio();
  PROTOBUF_NODISCARD std::string* release_volume_ratio();
  void set_allocated_volume_ratio(std::string* volume_ratio);
  private:
  const std::string& _internal_volume_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_volume_ratio(const std::string& value);
  std::string* _internal_mutable_volume_ratio();
  public:

  // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
  void clear_pe_ttm_ratio();
  const std::string& pe_ttm_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_pe_ttm_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_pe_ttm_ratio();
  PROTOBUF_NODISCARD std::string* release_pe_ttm_ratio();
  void set_allocated_pe_ttm_ratio(std::string* pe_ttm_ratio);
  private:
  const std::string& _internal_pe_ttm_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_pe_ttm_ratio(const std::string& value);
  std::string* _internal_mutable_pe_ttm_ratio();
  public:

  // string pb_ratio = 14 [json_name = "pbRatio"];
  void clear_pb_ratio();
  const std::string& pb_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_pb_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_pb_ratio();
  PROTOBUF_NODISCARD std::string* release_pb_ratio();
  void set_allocated_pb_ratio(std::string* pb_ratio);
  private:
  const std::string& _internal_pb_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_pb_ratio(const std::string& value);
  std::string* _internal_mutable_pb_ratio();
  public:

  // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
  void clear_dividend_ratio_ttm();
  const std::string& dividend_ratio_ttm() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_dividend_ratio_ttm(ArgT0&& arg0, ArgT... args);
  std::string* mutable_dividend_ratio_ttm();
  PROTOBUF_NODISCARD std::string* release_dividend_ratio_ttm();
  void set_allocated_dividend_ratio_ttm(std::string* dividend_ratio_ttm);
  private:
  const std::string& _internal_dividend_ratio_ttm() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_dividend_ratio_ttm(const std::string& value);
  std::string* _internal_mutable_dividend_ratio_ttm();
  public:

  // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
  void clear_five_day_change_rate();
  const std::string& five_day_change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_five_day_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_five_day_change_rate();
  PROTOBUF_NODISCARD std::string* release_five_day_change_rate();
  void set_allocated_five_day_change_rate(std::string* five_day_change_rate);
  private:
  const std::string& _internal_five_day_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_five_day_change_rate(const std::string& value);
  std::string* _internal_mutable_five_day_change_rate();
  public:

  // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
  void clear_ten_day_change_rate();
  const std::string& ten_day_change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_ten_day_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_ten_day_change_rate();
  PROTOBUF_NODISCARD std::string* release_ten_day_change_rate();
  void set_allocated_ten_day_change_rate(std::string* ten_day_change_rate);
  private:
  const std::string& _internal_ten_day_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ten_day_change_rate(const std::string& value);
  std::string* _internal_mutable_ten_day_change_rate();
  public:

  // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
  void clear_half_year_change_rate();
  const std::string& half_year_change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_half_year_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_half_year_change_rate();
  PROTOBUF_NODISCARD std::string* release_half_year_change_rate();
  void set_allocated_half_year_change_rate(std::string* half_year_change_rate);
  private:
  const std::string& _internal_half_year_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_half_year_change_rate(const std::string& value);
  std::string* _internal_mutable_half_year_change_rate();
  public:

  // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
  void clear_five_minutes_change_rate();
  const std::string& five_minutes_change_rate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_five_minutes_change_rate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_five_minutes_change_rate();
  PROTOBUF_NODISCARD std::string* release_five_minutes_change_rate();
  void set_allocated_five_minutes_change_rate(std::string* five_minutes_change_rate);
  private:
  const std::string& _internal_five_minutes_change_rate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_five_minutes_change_rate(const std::string& value);
  std::string* _internal_mutable_five_minutes_change_rate();
  public:

  // string expiry_date = 20 [json_name = "expiryDate"];
  void clear_expiry_date();
  const std::string& expiry_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_expiry_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_expiry_date();
  PROTOBUF_NODISCARD std::string* release_expiry_date();
  void set_allocated_expiry_date(std::string* expiry_date);
  private:
  const std::string& _internal_expiry_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expiry_date(const std::string& value);
  std::string* _internal_mutable_expiry_date();
  public:

  // string strike_price = 21 [json_name = "strikePrice"];
  void clear_strike_price();
  const std::string& strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_strike_price();
  PROTOBUF_NODISCARD std::string* release_strike_price();
  void set_allocated_strike_price(std::string* strike_price);
  private:
  const std::string& _internal_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_strike_price(const std::string& value);
  std::string* _internal_mutable_strike_price();
  public:

  // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
  void clear_upper_strike_price();
  const std::string& upper_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_upper_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_upper_strike_price();
  PROTOBUF_NODISCARD std::string* release_upper_strike_price();
  void set_allocated_upper_strike_price(std::string* upper_strike_price);
  private:
  const std::string& _internal_upper_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_upper_strike_price(const std::string& value);
  std::string* _internal_mutable_upper_strike_price();
  public:

  // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
  void clear_lower_strike_price();
  const std::string& lower_strike_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_lower_strike_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_lower_strike_price();
  PROTOBUF_NODISCARD std::string* release_lower_strike_price();
  void set_allocated_lower_strike_price(std::string* lower_strike_price);
  private:
  const std::string& _internal_lower_strike_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_lower_strike_price(const std::string& value);
  std::string* _internal_mutable_lower_strike_price();
  public:

  // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
  void clear_outstanding_ratio();
  const std::string& outstanding_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_outstanding_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_outstanding_ratio();
  PROTOBUF_NODISCARD std::string* release_outstanding_ratio();
  void set_allocated_outstanding_ratio(std::string* outstanding_ratio);
  private:
  const std::string& _internal_outstanding_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_outstanding_ratio(const std::string& value);
  std::string* _internal_mutable_outstanding_ratio();
  public:

  // string premium = 26 [json_name = "premium"];
  void clear_premium();
  const std::string& premium() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_premium(ArgT0&& arg0, ArgT... args);
  std::string* mutable_premium();
  PROTOBUF_NODISCARD std::string* release_premium();
  void set_allocated_premium(std::string* premium);
  private:
  const std::string& _internal_premium() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_premium(const std::string& value);
  std::string* _internal_mutable_premium();
  public:

  // string itm_otm = 27 [json_name = "itmOtm"];
  void clear_itm_otm();
  const std::string& itm_otm() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_itm_otm(ArgT0&& arg0, ArgT... args);
  std::string* mutable_itm_otm();
  PROTOBUF_NODISCARD std::string* release_itm_otm();
  void set_allocated_itm_otm(std::string* itm_otm);
  private:
  const std::string& _internal_itm_otm() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_itm_otm(const std::string& value);
  std::string* _internal_mutable_itm_otm();
  public:

  // string implied_volatility = 28 [json_name = "impliedVolatility"];
  void clear_implied_volatility();
  const std::string& implied_volatility() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_implied_volatility(ArgT0&& arg0, ArgT... args);
  std::string* mutable_implied_volatility();
  PROTOBUF_NODISCARD std::string* release_implied_volatility();
  void set_allocated_implied_volatility(std::string* implied_volatility);
  private:
  const std::string& _internal_implied_volatility() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_implied_volatility(const std::string& value);
  std::string* _internal_mutable_implied_volatility();
  public:

  // string warrant_delta = 29 [json_name = "warrantDelta"];
  void clear_warrant_delta();
  const std::string& warrant_delta() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_warrant_delta(ArgT0&& arg0, ArgT... args);
  std::string* mutable_warrant_delta();
  PROTOBUF_NODISCARD std::string* release_warrant_delta();
  void set_allocated_warrant_delta(std::string* warrant_delta);
  private:
  const std::string& _internal_warrant_delta() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_warrant_delta(const std::string& value);
  std::string* _internal_mutable_warrant_delta();
  public:

  // string call_price = 30 [json_name = "callPrice"];
  void clear_call_price();
  const std::string& call_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_call_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_call_price();
  PROTOBUF_NODISCARD std::string* release_call_price();
  void set_allocated_call_price(std::string* call_price);
  private:
  const std::string& _internal_call_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_call_price(const std::string& value);
  std::string* _internal_mutable_call_price();
  public:

  // string to_call_price = 31 [json_name = "toCallPrice"];
  void clear_to_call_price();
  const std::string& to_call_price() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_to_call_price(ArgT0&& arg0, ArgT... args);
  std::string* mutable_to_call_price();
  PROTOBUF_NODISCARD std::string* release_to_call_price();
  void set_allocated_to_call_price(std::string* to_call_price);
  private:
  const std::string& _internal_to_call_price() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_to_call_price(const std::string& value);
  std::string* _internal_mutable_to_call_price();
  public:

  // string effective_leverage = 32 [json_name = "effectiveLeverage"];
  void clear_effective_leverage();
  const std::string& effective_leverage() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_effective_leverage(ArgT0&& arg0, ArgT... args);
  std::string* mutable_effective_leverage();
  PROTOBUF_NODISCARD std::string* release_effective_leverage();
  void set_allocated_effective_leverage(std::string* effective_leverage);
  private:
  const std::string& _internal_effective_leverage() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_effective_leverage(const std::string& value);
  std::string* _internal_mutable_effective_leverage();
  public:

  // string leverage_ratio = 33 [json_name = "leverageRatio"];
  void clear_leverage_ratio();
  const std::string& leverage_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_leverage_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_leverage_ratio();
  PROTOBUF_NODISCARD std::string* release_leverage_ratio();
  void set_allocated_leverage_ratio(std::string* leverage_ratio);
  private:
  const std::string& _internal_leverage_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_leverage_ratio(const std::string& value);
  std::string* _internal_mutable_leverage_ratio();
  public:

  // string conversion_ratio = 34 [json_name = "conversionRatio"];
  void clear_conversion_ratio();
  const std::string& conversion_ratio() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_conversion_ratio(ArgT0&& arg0, ArgT... args);
  std::string* mutable_conversion_ratio();
  PROTOBUF_NODISCARD std::string* release_conversion_ratio();
  void set_allocated_conversion_ratio(std::string* conversion_ratio);
  private:
  const std::string& _internal_conversion_ratio() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_conversion_ratio(const std::string& value);
  std::string* _internal_mutable_conversion_ratio();
  public:

  // string balance_point = 35 [json_name = "balancePoint"];
  void clear_balance_point();
  const std::string& balance_point() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_balance_point(ArgT0&& arg0, ArgT... args);
  std::string* mutable_balance_point();
  PROTOBUF_NODISCARD std::string* release_balance_point();
  void set_allocated_balance_point(std::string* balance_point);
  private:
  const std::string& _internal_balance_point() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_balance_point(const std::string& value);
  std::string* _internal_mutable_balance_point();
  public:

  // string delta = 37 [json_name = "delta"];
  void clear_delta();
  const std::string& delta() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_delta(ArgT0&& arg0, ArgT... args);
  std::string* mutable_delta();
  PROTOBUF_NODISCARD std::string* release_delta();
  void set_allocated_delta(std::string* delta);
  private:
  const std::string& _internal_delta() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_delta(const std::string& value);
  std::string* _internal_mutable_delta();
  public:

  // string gamma = 38 [json_name = "gamma"];
  void clear_gamma();
  const std::string& gamma() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_gamma(ArgT0&& arg0, ArgT... args);
  std::string* mutable_gamma();
  PROTOBUF_NODISCARD std::string* release_gamma();
  void set_allocated_gamma(std::string* gamma);
  private:
  const std::string& _internal_gamma() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_gamma(const std::string& value);
  std::string* _internal_mutable_gamma();
  public:

  // string theta = 39 [json_name = "theta"];
  void clear_theta();
  const std::string& theta() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_theta(ArgT0&& arg0, ArgT... args);
  std::string* mutable_theta();
  PROTOBUF_NODISCARD std::string* release_theta();
  void set_allocated_theta(std::string* theta);
  private:
  const std::string& _internal_theta() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_theta(const std::string& value);
  std::string* _internal_mutable_theta();
  public:

  // string vega = 40 [json_name = "vega"];
  void clear_vega();
  const std::string& vega() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_vega(ArgT0&& arg0, ArgT... args);
  std::string* mutable_vega();
  PROTOBUF_NODISCARD std::string* release_vega();
  void set_allocated_vega(std::string* vega);
  private:
  const std::string& _internal_vega() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_vega(const std::string& value);
  std::string* _internal_mutable_vega();
  public:

  // string rho = 41 [json_name = "rho"];
  void clear_rho();
  const std::string& rho() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_rho(ArgT0&& arg0, ArgT... args);
  std::string* mutable_rho();
  PROTOBUF_NODISCARD std::string* release_rho();
  void set_allocated_rho(std::string* rho);
  private:
  const std::string& _internal_rho() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_rho(const std::string& value);
  std::string* _internal_mutable_rho();
  public:

  // int64 volume = 5 [json_name = "volume"];
  void clear_volume();
  int64_t volume() const;
  void set_volume(int64_t value);
  private:
  int64_t _internal_volume() const;
  void _internal_set_volume(int64_t value);
  public:

  // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
  void clear_outstanding_qty();
  int64_t outstanding_qty() const;
  void set_outstanding_qty(int64_t value);
  private:
  int64_t _internal_outstanding_qty() const;
  void _internal_set_outstanding_qty(int64_t value);
  public:

  // int64 open_interest = 36 [json_name = "openInterest"];
  void clear_open_interest();
  int64_t open_interest() const;
  void set_open_interest(int64_t value);
  private:
  int64_t _internal_open_interest() const;
  void _internal_set_open_interest(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityCalcIndex)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_done_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr change_val_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ytd_change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr turnover_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr total_market_value_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr capital_flow_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr amplitude_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr volume_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr pe_ttm_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr pb_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr dividend_ratio_ttm_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr five_day_change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ten_day_change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr half_year_change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr five_minutes_change_rate_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expiry_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr upper_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr lower_strike_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr outstanding_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr premium_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr itm_otm_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr implied_volatility_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr warrant_delta_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr call_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr to_call_price_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr effective_leverage_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr leverage_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr conversion_ratio_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr balance_point_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr delta_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr gamma_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr theta_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr vega_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr rho_;
  int64_t volume_;
  int64_t outstanding_qty_;
  int64_t open_interest_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityCalcQuoteResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityCalcQuoteResponse) */ {
 public:
  inline SecurityCalcQuoteResponse() : SecurityCalcQuoteResponse(nullptr) {}
  ~SecurityCalcQuoteResponse() override;
  explicit PROTOBUF_CONSTEXPR SecurityCalcQuoteResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityCalcQuoteResponse(const SecurityCalcQuoteResponse& from);
  SecurityCalcQuoteResponse(SecurityCalcQuoteResponse&& from) noexcept
    : SecurityCalcQuoteResponse() {
    *this = ::std::move(from);
  }

  inline SecurityCalcQuoteResponse& operator=(const SecurityCalcQuoteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityCalcQuoteResponse& operator=(SecurityCalcQuoteResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityCalcQuoteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityCalcQuoteResponse* internal_default_instance() {
    return reinterpret_cast<const SecurityCalcQuoteResponse*>(
               &_SecurityCalcQuoteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    60;

  friend void swap(SecurityCalcQuoteResponse& a, SecurityCalcQuoteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityCalcQuoteResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityCalcQuoteResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityCalcQuoteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityCalcQuoteResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityCalcQuoteResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityCalcQuoteResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityCalcQuoteResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityCalcQuoteResponse";
  }
  protected:
  explicit SecurityCalcQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSecurityCalcIndexFieldNumber = 1,
  };
  // repeated .longbridge.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
  int security_calc_index_size() const;
  private:
  int _internal_security_calc_index_size() const;
  public:
  void clear_security_calc_index();
  ::longbridge::quote::v1::SecurityCalcIndex* mutable_security_calc_index(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityCalcIndex >*
      mutable_security_calc_index();
  private:
  const ::longbridge::quote::v1::SecurityCalcIndex& _internal_security_calc_index(int index) const;
  ::longbridge::quote::v1::SecurityCalcIndex* _internal_add_security_calc_index();
  public:
  const ::longbridge::quote::v1::SecurityCalcIndex& security_calc_index(int index) const;
  ::longbridge::quote::v1::SecurityCalcIndex* add_security_calc_index();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityCalcIndex >&
      security_calc_index() const;

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityCalcQuoteResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityCalcIndex > security_calc_index_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityHistoryCandlestickRequest_OffsetQuery final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery) */ {
 public:
  inline SecurityHistoryCandlestickRequest_OffsetQuery() : SecurityHistoryCandlestickRequest_OffsetQuery(nullptr) {}
  ~SecurityHistoryCandlestickRequest_OffsetQuery() override;
  explicit PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_OffsetQuery(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityHistoryCandlestickRequest_OffsetQuery(const SecurityHistoryCandlestickRequest_OffsetQuery& from);
  SecurityHistoryCandlestickRequest_OffsetQuery(SecurityHistoryCandlestickRequest_OffsetQuery&& from) noexcept
    : SecurityHistoryCandlestickRequest_OffsetQuery() {
    *this = ::std::move(from);
  }

  inline SecurityHistoryCandlestickRequest_OffsetQuery& operator=(const SecurityHistoryCandlestickRequest_OffsetQuery& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityHistoryCandlestickRequest_OffsetQuery& operator=(SecurityHistoryCandlestickRequest_OffsetQuery&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityHistoryCandlestickRequest_OffsetQuery& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityHistoryCandlestickRequest_OffsetQuery* internal_default_instance() {
    return reinterpret_cast<const SecurityHistoryCandlestickRequest_OffsetQuery*>(
               &_SecurityHistoryCandlestickRequest_OffsetQuery_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    61;

  friend void swap(SecurityHistoryCandlestickRequest_OffsetQuery& a, SecurityHistoryCandlestickRequest_OffsetQuery& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityHistoryCandlestickRequest_OffsetQuery* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityHistoryCandlestickRequest_OffsetQuery* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityHistoryCandlestickRequest_OffsetQuery* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityHistoryCandlestickRequest_OffsetQuery>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityHistoryCandlestickRequest_OffsetQuery& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityHistoryCandlestickRequest_OffsetQuery& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityHistoryCandlestickRequest_OffsetQuery* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery";
  }
  protected:
  explicit SecurityHistoryCandlestickRequest_OffsetQuery(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kDateFieldNumber = 2,
    kMinuteFieldNumber = 3,
    kDirectionFieldNumber = 1,
    kCountFieldNumber = 4,
  };
  // string date = 2 [json_name = "date"];
  void clear_date();
  const std::string& date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_date();
  PROTOBUF_NODISCARD std::string* release_date();
  void set_allocated_date(std::string* date);
  private:
  const std::string& _internal_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_date(const std::string& value);
  std::string* _internal_mutable_date();
  public:

  // string minute = 3 [json_name = "minute"];
  void clear_minute();
  const std::string& minute() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_minute(ArgT0&& arg0, ArgT... args);
  std::string* mutable_minute();
  PROTOBUF_NODISCARD std::string* release_minute();
  void set_allocated_minute(std::string* minute);
  private:
  const std::string& _internal_minute() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_minute(const std::string& value);
  std::string* _internal_mutable_minute();
  public:

  // .longbridge.quote.v1.Direction direction = 1 [json_name = "direction"];
  void clear_direction();
  ::longbridge::quote::v1::Direction direction() const;
  void set_direction(::longbridge::quote::v1::Direction value);
  private:
  ::longbridge::quote::v1::Direction _internal_direction() const;
  void _internal_set_direction(::longbridge::quote::v1::Direction value);
  public:

  // int32 count = 4 [json_name = "count"];
  void clear_count();
  int32_t count() const;
  void set_count(int32_t value);
  private:
  int32_t _internal_count() const;
  void _internal_set_count(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr minute_;
  int direction_;
  int32_t count_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityHistoryCandlestickRequest_DateQuery final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery) */ {
 public:
  inline SecurityHistoryCandlestickRequest_DateQuery() : SecurityHistoryCandlestickRequest_DateQuery(nullptr) {}
  ~SecurityHistoryCandlestickRequest_DateQuery() override;
  explicit PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_DateQuery(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityHistoryCandlestickRequest_DateQuery(const SecurityHistoryCandlestickRequest_DateQuery& from);
  SecurityHistoryCandlestickRequest_DateQuery(SecurityHistoryCandlestickRequest_DateQuery&& from) noexcept
    : SecurityHistoryCandlestickRequest_DateQuery() {
    *this = ::std::move(from);
  }

  inline SecurityHistoryCandlestickRequest_DateQuery& operator=(const SecurityHistoryCandlestickRequest_DateQuery& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityHistoryCandlestickRequest_DateQuery& operator=(SecurityHistoryCandlestickRequest_DateQuery&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityHistoryCandlestickRequest_DateQuery& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityHistoryCandlestickRequest_DateQuery* internal_default_instance() {
    return reinterpret_cast<const SecurityHistoryCandlestickRequest_DateQuery*>(
               &_SecurityHistoryCandlestickRequest_DateQuery_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    62;

  friend void swap(SecurityHistoryCandlestickRequest_DateQuery& a, SecurityHistoryCandlestickRequest_DateQuery& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityHistoryCandlestickRequest_DateQuery* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityHistoryCandlestickRequest_DateQuery* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityHistoryCandlestickRequest_DateQuery* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityHistoryCandlestickRequest_DateQuery>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityHistoryCandlestickRequest_DateQuery& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityHistoryCandlestickRequest_DateQuery& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityHistoryCandlestickRequest_DateQuery* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery";
  }
  protected:
  explicit SecurityHistoryCandlestickRequest_DateQuery(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStartDateFieldNumber = 1,
    kEndDateFieldNumber = 2,
  };
  // string start_date = 1 [json_name = "startDate"];
  void clear_start_date();
  const std::string& start_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_start_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_start_date();
  PROTOBUF_NODISCARD std::string* release_start_date();
  void set_allocated_start_date(std::string* start_date);
  private:
  const std::string& _internal_start_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_start_date(const std::string& value);
  std::string* _internal_mutable_start_date();
  public:

  // string end_date = 2 [json_name = "endDate"];
  void clear_end_date();
  const std::string& end_date() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_end_date(ArgT0&& arg0, ArgT... args);
  std::string* mutable_end_date();
  PROTOBUF_NODISCARD std::string* release_end_date();
  void set_allocated_end_date(std::string* end_date);
  private:
  const std::string& _internal_end_date() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_end_date(const std::string& value);
  std::string* _internal_mutable_end_date();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr start_date_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr end_date_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class SecurityHistoryCandlestickRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.SecurityHistoryCandlestickRequest) */ {
 public:
  inline SecurityHistoryCandlestickRequest() : SecurityHistoryCandlestickRequest(nullptr) {}
  ~SecurityHistoryCandlestickRequest() override;
  explicit PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SecurityHistoryCandlestickRequest(const SecurityHistoryCandlestickRequest& from);
  SecurityHistoryCandlestickRequest(SecurityHistoryCandlestickRequest&& from) noexcept
    : SecurityHistoryCandlestickRequest() {
    *this = ::std::move(from);
  }

  inline SecurityHistoryCandlestickRequest& operator=(const SecurityHistoryCandlestickRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityHistoryCandlestickRequest& operator=(SecurityHistoryCandlestickRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityHistoryCandlestickRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityHistoryCandlestickRequest* internal_default_instance() {
    return reinterpret_cast<const SecurityHistoryCandlestickRequest*>(
               &_SecurityHistoryCandlestickRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    63;

  friend void swap(SecurityHistoryCandlestickRequest& a, SecurityHistoryCandlestickRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(SecurityHistoryCandlestickRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityHistoryCandlestickRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SecurityHistoryCandlestickRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SecurityHistoryCandlestickRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SecurityHistoryCandlestickRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const SecurityHistoryCandlestickRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SecurityHistoryCandlestickRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.SecurityHistoryCandlestickRequest";
  }
  protected:
  explicit SecurityHistoryCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef SecurityHistoryCandlestickRequest_OffsetQuery OffsetQuery;
  typedef SecurityHistoryCandlestickRequest_DateQuery DateQuery;

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

  enum : int {
    kSymbolFieldNumber = 1,
    kOffsetRequestFieldNumber = 5,
    kDateRequestFieldNumber = 6,
    kPeriodFieldNumber = 2,
    kAdjustTypeFieldNumber = 3,
    kQueryTypeFieldNumber = 4,
    kTradeSessionFieldNumber = 7,
  };
  // string symbol = 1 [json_name = "symbol"];
  void clear_symbol();
  const std::string& symbol() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_symbol(ArgT0&& arg0, ArgT... args);
  std::string* mutable_symbol();
  PROTOBUF_NODISCARD std::string* release_symbol();
  void set_allocated_symbol(std::string* symbol);
  private:
  const std::string& _internal_symbol() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_symbol(const std::string& value);
  std::string* _internal_mutable_symbol();
  public:

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery offset_request = 5 [json_name = "offsetRequest"];
  bool has_offset_request() const;
  private:
  bool _internal_has_offset_request() const;
  public:
  void clear_offset_request();
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery& offset_request() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* release_offset_request();
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* mutable_offset_request();
  void set_allocated_offset_request(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* offset_request);
  private:
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery& _internal_offset_request() const;
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* _internal_mutable_offset_request();
  public:
  void unsafe_arena_set_allocated_offset_request(
      ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* offset_request);
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* unsafe_arena_release_offset_request();

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery date_request = 6 [json_name = "dateRequest"];
  bool has_date_request() const;
  private:
  bool _internal_has_date_request() const;
  public:
  void clear_date_request();
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery& date_request() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* release_date_request();
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* mutable_date_request();
  void set_allocated_date_request(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* date_request);
  private:
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery& _internal_date_request() const;
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* _internal_mutable_date_request();
  public:
  void unsafe_arena_set_allocated_date_request(
      ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* date_request);
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* unsafe_arena_release_date_request();

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  void clear_period();
  ::longbridge::quote::v1::Period period() const;
  void set_period(::longbridge::quote::v1::Period value);
  private:
  ::longbridge::quote::v1::Period _internal_period() const;
  void _internal_set_period(::longbridge::quote::v1::Period value);
  public:

  // .longbridge.quote.v1.AdjustType adjust_type = 3 [json_name = "adjustType"];
  void clear_adjust_type();
  ::longbridge::quote::v1::AdjustType adjust_type() const;
  void set_adjust_type(::longbridge::quote::v1::AdjustType value);
  private:
  ::longbridge::quote::v1::AdjustType _internal_adjust_type() const;
  void _internal_set_adjust_type(::longbridge::quote::v1::AdjustType value);
  public:

  // .longbridge.quote.v1.HistoryCandlestickQueryType query_type = 4 [json_name = "queryType"];
  void clear_query_type();
  ::longbridge::quote::v1::HistoryCandlestickQueryType query_type() const;
  void set_query_type(::longbridge::quote::v1::HistoryCandlestickQueryType value);
  private:
  ::longbridge::quote::v1::HistoryCandlestickQueryType _internal_query_type() const;
  void _internal_set_query_type(::longbridge::quote::v1::HistoryCandlestickQueryType value);
  public:

  // int32 trade_session = 7 [json_name = "tradeSession"];
  void clear_trade_session();
  int32_t trade_session() const;
  void set_trade_session(int32_t value);
  private:
  int32_t _internal_trade_session() const;
  void _internal_set_trade_session(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_;
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* offset_request_;
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* date_request_;
  int period_;
  int adjust_type_;
  int query_type_;
  int32_t trade_session_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UserQuoteProfileRequest final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UserQuoteProfileRequest) */ {
 public:
  inline UserQuoteProfileRequest() : UserQuoteProfileRequest(nullptr) {}
  ~UserQuoteProfileRequest() override;
  explicit PROTOBUF_CONSTEXPR UserQuoteProfileRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UserQuoteProfileRequest(const UserQuoteProfileRequest& from);
  UserQuoteProfileRequest(UserQuoteProfileRequest&& from) noexcept
    : UserQuoteProfileRequest() {
    *this = ::std::move(from);
  }

  inline UserQuoteProfileRequest& operator=(const UserQuoteProfileRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserQuoteProfileRequest& operator=(UserQuoteProfileRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UserQuoteProfileRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserQuoteProfileRequest* internal_default_instance() {
    return reinterpret_cast<const UserQuoteProfileRequest*>(
               &_UserQuoteProfileRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    64;

  friend void swap(UserQuoteProfileRequest& a, UserQuoteProfileRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UserQuoteProfileRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserQuoteProfileRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserQuoteProfileRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserQuoteProfileRequest>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UserQuoteProfileRequest& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UserQuoteProfileRequest& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserQuoteProfileRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UserQuoteProfileRequest";
  }
  protected:
  explicit UserQuoteProfileRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLanguageFieldNumber = 1,
  };
  // string language = 1 [json_name = "language"];
  void clear_language();
  const std::string& language() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_language(ArgT0&& arg0, ArgT... args);
  std::string* mutable_language();
  PROTOBUF_NODISCARD std::string* release_language();
  void set_allocated_language(std::string* language);
  private:
  const std::string& _internal_language() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_language(const std::string& value);
  std::string* _internal_mutable_language();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UserQuoteProfileRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr language_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class RateLimit final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.RateLimit) */ {
 public:
  inline RateLimit() : RateLimit(nullptr) {}
  ~RateLimit() override;
  explicit PROTOBUF_CONSTEXPR RateLimit(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RateLimit(const RateLimit& from);
  RateLimit(RateLimit&& from) noexcept
    : RateLimit() {
    *this = ::std::move(from);
  }

  inline RateLimit& operator=(const RateLimit& from) {
    CopyFrom(from);
    return *this;
  }
  inline RateLimit& operator=(RateLimit&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RateLimit& default_instance() {
    return *internal_default_instance();
  }
  static inline const RateLimit* internal_default_instance() {
    return reinterpret_cast<const RateLimit*>(
               &_RateLimit_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    65;

  friend void swap(RateLimit& a, RateLimit& b) {
    a.Swap(&b);
  }
  inline void Swap(RateLimit* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RateLimit* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RateLimit* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RateLimit>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RateLimit& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const RateLimit& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RateLimit* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.RateLimit";
  }
  protected:
  explicit RateLimit(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kCommandFieldNumber = 1,
    kLimitFieldNumber = 2,
    kBurstFieldNumber = 3,
  };
  // .longbridge.quote.v1.Command command = 1 [json_name = "command"];
  void clear_command();
  ::longbridge::quote::v1::Command command() const;
  void set_command(::longbridge::quote::v1::Command value);
  private:
  ::longbridge::quote::v1::Command _internal_command() const;
  void _internal_set_command(::longbridge::quote::v1::Command value);
  public:

  // int32 limit = 2 [json_name = "limit"];
  void clear_limit();
  int32_t limit() const;
  void set_limit(int32_t value);
  private:
  int32_t _internal_limit() const;
  void _internal_set_limit(int32_t value);
  public:

  // int32 burst = 3 [json_name = "burst"];
  void clear_burst();
  int32_t burst() const;
  void set_burst(int32_t value);
  private:
  int32_t _internal_burst() const;
  void _internal_set_burst(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.RateLimit)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int command_;
  int32_t limit_;
  int32_t burst_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UserQuoteLevelDetail_PackageDetail final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail) */ {
 public:
  inline UserQuoteLevelDetail_PackageDetail() : UserQuoteLevelDetail_PackageDetail(nullptr) {}
  ~UserQuoteLevelDetail_PackageDetail() override;
  explicit PROTOBUF_CONSTEXPR UserQuoteLevelDetail_PackageDetail(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UserQuoteLevelDetail_PackageDetail(const UserQuoteLevelDetail_PackageDetail& from);
  UserQuoteLevelDetail_PackageDetail(UserQuoteLevelDetail_PackageDetail&& from) noexcept
    : UserQuoteLevelDetail_PackageDetail() {
    *this = ::std::move(from);
  }

  inline UserQuoteLevelDetail_PackageDetail& operator=(const UserQuoteLevelDetail_PackageDetail& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserQuoteLevelDetail_PackageDetail& operator=(UserQuoteLevelDetail_PackageDetail&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UserQuoteLevelDetail_PackageDetail& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserQuoteLevelDetail_PackageDetail* internal_default_instance() {
    return reinterpret_cast<const UserQuoteLevelDetail_PackageDetail*>(
               &_UserQuoteLevelDetail_PackageDetail_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    66;

  friend void swap(UserQuoteLevelDetail_PackageDetail& a, UserQuoteLevelDetail_PackageDetail& b) {
    a.Swap(&b);
  }
  inline void Swap(UserQuoteLevelDetail_PackageDetail* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserQuoteLevelDetail_PackageDetail* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserQuoteLevelDetail_PackageDetail* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserQuoteLevelDetail_PackageDetail>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UserQuoteLevelDetail_PackageDetail& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UserQuoteLevelDetail_PackageDetail& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserQuoteLevelDetail_PackageDetail* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail";
  }
  protected:
  explicit UserQuoteLevelDetail_PackageDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kKeyFieldNumber = 1,
    kNameFieldNumber = 2,
    kDescriptionFieldNumber = 4,
    kStartFieldNumber = 5,
    kEndFieldNumber = 6,
  };
  // string key = 1 [json_name = "key"];
  void clear_key();
  const std::string& key() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_key(ArgT0&& arg0, ArgT... args);
  std::string* mutable_key();
  PROTOBUF_NODISCARD std::string* release_key();
  void set_allocated_key(std::string* key);
  private:
  const std::string& _internal_key() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_key(const std::string& value);
  std::string* _internal_mutable_key();
  public:

  // string name = 2 [json_name = "name"];
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string description = 4 [json_name = "description"];
  void clear_description();
  const std::string& description() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_description(ArgT0&& arg0, ArgT... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* description);
  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(const std::string& value);
  std::string* _internal_mutable_description();
  public:

  // int64 start = 5 [json_name = "start"];
  void clear_start();
  int64_t start() const;
  void set_start(int64_t value);
  private:
  int64_t _internal_start() const;
  void _internal_set_start(int64_t value);
  public:

  // int64 end = 6 [json_name = "end"];
  void clear_end();
  int64_t end() const;
  void set_end(int64_t value);
  private:
  int64_t _internal_end() const;
  void _internal_set_end(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_;
  int64_t start_;
  int64_t end_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UserQuoteLevelDetail_MarketPackageDetail final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail) */ {
 public:
  inline UserQuoteLevelDetail_MarketPackageDetail() : UserQuoteLevelDetail_MarketPackageDetail(nullptr) {}
  ~UserQuoteLevelDetail_MarketPackageDetail() override;
  explicit PROTOBUF_CONSTEXPR UserQuoteLevelDetail_MarketPackageDetail(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UserQuoteLevelDetail_MarketPackageDetail(const UserQuoteLevelDetail_MarketPackageDetail& from);
  UserQuoteLevelDetail_MarketPackageDetail(UserQuoteLevelDetail_MarketPackageDetail&& from) noexcept
    : UserQuoteLevelDetail_MarketPackageDetail() {
    *this = ::std::move(from);
  }

  inline UserQuoteLevelDetail_MarketPackageDetail& operator=(const UserQuoteLevelDetail_MarketPackageDetail& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserQuoteLevelDetail_MarketPackageDetail& operator=(UserQuoteLevelDetail_MarketPackageDetail&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UserQuoteLevelDetail_MarketPackageDetail& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserQuoteLevelDetail_MarketPackageDetail* internal_default_instance() {
    return reinterpret_cast<const UserQuoteLevelDetail_MarketPackageDetail*>(
               &_UserQuoteLevelDetail_MarketPackageDetail_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    67;

  friend void swap(UserQuoteLevelDetail_MarketPackageDetail& a, UserQuoteLevelDetail_MarketPackageDetail& b) {
    a.Swap(&b);
  }
  inline void Swap(UserQuoteLevelDetail_MarketPackageDetail* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserQuoteLevelDetail_MarketPackageDetail* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserQuoteLevelDetail_MarketPackageDetail* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserQuoteLevelDetail_MarketPackageDetail>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UserQuoteLevelDetail_MarketPackageDetail& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UserQuoteLevelDetail_MarketPackageDetail& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserQuoteLevelDetail_MarketPackageDetail* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail";
  }
  protected:
  explicit UserQuoteLevelDetail_MarketPackageDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPackagesFieldNumber = 1,
    kWarningMsgFieldNumber = 4,
  };
  // repeated .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail packages = 1 [json_name = "packages"];
  int packages_size() const;
  private:
  int _internal_packages_size() const;
  public:
  void clear_packages();
  ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* mutable_packages(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
      mutable_packages();
  private:
  const ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail& _internal_packages(int index) const;
  ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* _internal_add_packages();
  public:
  const ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail& packages(int index) const;
  ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* add_packages();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
      packages() const;

  // string warning_msg = 4 [json_name = "warningMsg"];
  void clear_warning_msg();
  const std::string& warning_msg() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_warning_msg(ArgT0&& arg0, ArgT... args);
  std::string* mutable_warning_msg();
  PROTOBUF_NODISCARD std::string* release_warning_msg();
  void set_allocated_warning_msg(std::string* warning_msg);
  private:
  const std::string& _internal_warning_msg() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_warning_msg(const std::string& value);
  std::string* _internal_mutable_warning_msg();
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail > packages_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr warning_msg_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, 
    std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, 
    std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> SuperType;
  UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse();
  explicit PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse& other);
  static const UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse*>(&_UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "longbridge.quote.v1.UserQuoteLevelDetail.ByPackageKeyEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};

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

class UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, 
    std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, 
    std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> SuperType;
  UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse();
  explicit PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse& other);
  static const UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse*>(&_UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "longbridge.quote.v1.UserQuoteLevelDetail.ByMarketCodeEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};

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

class UserQuoteLevelDetail final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UserQuoteLevelDetail) */ {
 public:
  inline UserQuoteLevelDetail() : UserQuoteLevelDetail(nullptr) {}
  ~UserQuoteLevelDetail() override;
  explicit PROTOBUF_CONSTEXPR UserQuoteLevelDetail(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UserQuoteLevelDetail(const UserQuoteLevelDetail& from);
  UserQuoteLevelDetail(UserQuoteLevelDetail&& from) noexcept
    : UserQuoteLevelDetail() {
    *this = ::std::move(from);
  }

  inline UserQuoteLevelDetail& operator=(const UserQuoteLevelDetail& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserQuoteLevelDetail& operator=(UserQuoteLevelDetail&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UserQuoteLevelDetail& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserQuoteLevelDetail* internal_default_instance() {
    return reinterpret_cast<const UserQuoteLevelDetail*>(
               &_UserQuoteLevelDetail_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    70;

  friend void swap(UserQuoteLevelDetail& a, UserQuoteLevelDetail& b) {
    a.Swap(&b);
  }
  inline void Swap(UserQuoteLevelDetail* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserQuoteLevelDetail* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserQuoteLevelDetail* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserQuoteLevelDetail>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UserQuoteLevelDetail& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UserQuoteLevelDetail& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserQuoteLevelDetail* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UserQuoteLevelDetail";
  }
  protected:
  explicit UserQuoteLevelDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef UserQuoteLevelDetail_PackageDetail PackageDetail;
  typedef UserQuoteLevelDetail_MarketPackageDetail MarketPackageDetail;

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

  enum : int {
    kByPackageKeyFieldNumber = 1,
    kByMarketCodeFieldNumber = 2,
  };
  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail> by_package_key = 1 [json_name = "byPackageKey"];
  int by_package_key_size() const;
  private:
  int _internal_by_package_key_size() const;
  public:
  void clear_by_package_key();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
      _internal_by_package_key() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
      _internal_mutable_by_package_key();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
      by_package_key() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
      mutable_by_package_key();

  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail> by_market_code = 2 [json_name = "byMarketCode"];
  int by_market_code_size() const;
  private:
  int _internal_by_market_code_size() const;
  public:
  void clear_by_market_code();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >&
      _internal_by_market_code() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >*
      _internal_mutable_by_market_code();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >&
      by_market_code() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >*
      mutable_by_market_code();

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UserQuoteLevelDetail)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse,
      std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> by_package_key_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse,
      std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE> by_market_code_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// -------------------------------------------------------------------

class UserQuoteProfileResponse final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:longbridge.quote.v1.UserQuoteProfileResponse) */ {
 public:
  inline UserQuoteProfileResponse() : UserQuoteProfileResponse(nullptr) {}
  ~UserQuoteProfileResponse() override;
  explicit PROTOBUF_CONSTEXPR UserQuoteProfileResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  UserQuoteProfileResponse(const UserQuoteProfileResponse& from);
  UserQuoteProfileResponse(UserQuoteProfileResponse&& from) noexcept
    : UserQuoteProfileResponse() {
    *this = ::std::move(from);
  }

  inline UserQuoteProfileResponse& operator=(const UserQuoteProfileResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserQuoteProfileResponse& operator=(UserQuoteProfileResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const UserQuoteProfileResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserQuoteProfileResponse* internal_default_instance() {
    return reinterpret_cast<const UserQuoteProfileResponse*>(
               &_UserQuoteProfileResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    71;

  friend void swap(UserQuoteProfileResponse& a, UserQuoteProfileResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(UserQuoteProfileResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserQuoteProfileResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserQuoteProfileResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserQuoteProfileResponse>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const UserQuoteProfileResponse& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom(const UserQuoteProfileResponse& from);
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserQuoteProfileResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "longbridge.quote.v1.UserQuoteProfileResponse";
  }
  protected:
  explicit UserQuoteProfileResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kRateLimitFieldNumber = 5,
    kQuoteLevelFieldNumber = 2,
    kQuoteLevelDetailFieldNumber = 6,
    kMemberIdFieldNumber = 1,
    kSubscribeLimitFieldNumber = 3,
    kHistoryCandlestickLimitFieldNumber = 4,
  };
  // repeated .longbridge.quote.v1.RateLimit rate_limit = 5 [json_name = "rateLimit"];
  int rate_limit_size() const;
  private:
  int _internal_rate_limit_size() const;
  public:
  void clear_rate_limit();
  ::longbridge::quote::v1::RateLimit* mutable_rate_limit(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::RateLimit >*
      mutable_rate_limit();
  private:
  const ::longbridge::quote::v1::RateLimit& _internal_rate_limit(int index) const;
  ::longbridge::quote::v1::RateLimit* _internal_add_rate_limit();
  public:
  const ::longbridge::quote::v1::RateLimit& rate_limit(int index) const;
  ::longbridge::quote::v1::RateLimit* add_rate_limit();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::RateLimit >&
      rate_limit() const;

  // string quote_level = 2 [json_name = "quoteLevel"];
  void clear_quote_level();
  const std::string& quote_level() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_quote_level(ArgT0&& arg0, ArgT... args);
  std::string* mutable_quote_level();
  PROTOBUF_NODISCARD std::string* release_quote_level();
  void set_allocated_quote_level(std::string* quote_level);
  private:
  const std::string& _internal_quote_level() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_quote_level(const std::string& value);
  std::string* _internal_mutable_quote_level();
  public:

  // .longbridge.quote.v1.UserQuoteLevelDetail quote_level_detail = 6 [json_name = "quoteLevelDetail"];
  bool has_quote_level_detail() const;
  private:
  bool _internal_has_quote_level_detail() const;
  public:
  void clear_quote_level_detail();
  const ::longbridge::quote::v1::UserQuoteLevelDetail& quote_level_detail() const;
  PROTOBUF_NODISCARD ::longbridge::quote::v1::UserQuoteLevelDetail* release_quote_level_detail();
  ::longbridge::quote::v1::UserQuoteLevelDetail* mutable_quote_level_detail();
  void set_allocated_quote_level_detail(::longbridge::quote::v1::UserQuoteLevelDetail* quote_level_detail);
  private:
  const ::longbridge::quote::v1::UserQuoteLevelDetail& _internal_quote_level_detail() const;
  ::longbridge::quote::v1::UserQuoteLevelDetail* _internal_mutable_quote_level_detail();
  public:
  void unsafe_arena_set_allocated_quote_level_detail(
      ::longbridge::quote::v1::UserQuoteLevelDetail* quote_level_detail);
  ::longbridge::quote::v1::UserQuoteLevelDetail* unsafe_arena_release_quote_level_detail();

  // int64 member_id = 1 [json_name = "memberId"];
  void clear_member_id();
  int64_t member_id() const;
  void set_member_id(int64_t value);
  private:
  int64_t _internal_member_id() const;
  void _internal_set_member_id(int64_t value);
  public:

  // int32 subscribe_limit = 3 [json_name = "subscribeLimit"];
  void clear_subscribe_limit();
  int32_t subscribe_limit() const;
  void set_subscribe_limit(int32_t value);
  private:
  int32_t _internal_subscribe_limit() const;
  void _internal_set_subscribe_limit(int32_t value);
  public:

  // int32 history_candlestick_limit = 4 [json_name = "historyCandlestickLimit"];
  void clear_history_candlestick_limit();
  int32_t history_candlestick_limit() const;
  void set_history_candlestick_limit(int32_t value);
  private:
  int32_t _internal_history_candlestick_limit() const;
  void _internal_set_history_candlestick_limit(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:longbridge.quote.v1.UserQuoteProfileResponse)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::RateLimit > rate_limit_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr quote_level_;
  ::longbridge::quote::v1::UserQuoteLevelDetail* quote_level_detail_;
  int64_t member_id_;
  int32_t subscribe_limit_;
  int32_t history_candlestick_limit_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_quote_2fapi_2eproto;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// SecurityRequest

// string symbol = 1 [json_name = "symbol"];
inline void SecurityRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityRequest.symbol)
}
inline std::string* SecurityRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityRequest.symbol)
  return _s;
}
inline const std::string& SecurityRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityRequest.symbol)
  return symbol_.Release();
}
inline void SecurityRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityRequest.symbol)
}

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

// MultiSecurityRequest

// repeated string symbol = 1 [json_name = "symbol"];
inline int MultiSecurityRequest::_internal_symbol_size() const {
  return symbol_.size();
}
inline int MultiSecurityRequest::symbol_size() const {
  return _internal_symbol_size();
}
inline void MultiSecurityRequest::clear_symbol() {
  symbol_.Clear();
}
inline std::string* MultiSecurityRequest::add_symbol() {
  std::string* _s = _internal_add_symbol();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.MultiSecurityRequest.symbol)
  return _s;
}
inline const std::string& MultiSecurityRequest::_internal_symbol(int index) const {
  return symbol_.Get(index);
}
inline const std::string& MultiSecurityRequest::symbol(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MultiSecurityRequest.symbol)
  return _internal_symbol(index);
}
inline std::string* MultiSecurityRequest::mutable_symbol(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MultiSecurityRequest.symbol)
  return symbol_.Mutable(index);
}
inline void MultiSecurityRequest::set_symbol(int index, const std::string& value) {
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::set_symbol(int index, std::string&& value) {
  symbol_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::set_symbol(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::set_symbol(int index, const char* value, size_t size) {
  symbol_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline std::string* MultiSecurityRequest::_internal_add_symbol() {
  return symbol_.Add();
}
inline void MultiSecurityRequest::add_symbol(const std::string& value) {
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::add_symbol(std::string&& value) {
  symbol_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::add_symbol(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline void MultiSecurityRequest::add_symbol(const char* value, size_t size) {
  symbol_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.MultiSecurityRequest.symbol)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiSecurityRequest::symbol() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.MultiSecurityRequest.symbol)
  return symbol_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiSecurityRequest::mutable_symbol() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.MultiSecurityRequest.symbol)
  return &symbol_;
}

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

// SecurityStaticInfoResponse

// repeated .longbridge.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
inline int SecurityStaticInfoResponse::_internal_secu_static_info_size() const {
  return secu_static_info_.size();
}
inline int SecurityStaticInfoResponse::secu_static_info_size() const {
  return _internal_secu_static_info_size();
}
inline void SecurityStaticInfoResponse::clear_secu_static_info() {
  secu_static_info_.Clear();
}
inline ::longbridge::quote::v1::StaticInfo* SecurityStaticInfoResponse::mutable_secu_static_info(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info)
  return secu_static_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StaticInfo >*
SecurityStaticInfoResponse::mutable_secu_static_info() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info)
  return &secu_static_info_;
}
inline const ::longbridge::quote::v1::StaticInfo& SecurityStaticInfoResponse::_internal_secu_static_info(int index) const {
  return secu_static_info_.Get(index);
}
inline const ::longbridge::quote::v1::StaticInfo& SecurityStaticInfoResponse::secu_static_info(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info)
  return _internal_secu_static_info(index);
}
inline ::longbridge::quote::v1::StaticInfo* SecurityStaticInfoResponse::_internal_add_secu_static_info() {
  return secu_static_info_.Add();
}
inline ::longbridge::quote::v1::StaticInfo* SecurityStaticInfoResponse::add_secu_static_info() {
  ::longbridge::quote::v1::StaticInfo* _add = _internal_add_secu_static_info();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StaticInfo >&
SecurityStaticInfoResponse::secu_static_info() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info)
  return secu_static_info_;
}

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

// StaticInfo

// string symbol = 1 [json_name = "symbol"];
inline void StaticInfo::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& StaticInfo::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.symbol)
}
inline std::string* StaticInfo::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.symbol)
  return _s;
}
inline const std::string& StaticInfo::_internal_symbol() const {
  return symbol_.Get();
}
inline void StaticInfo::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.symbol)
  return symbol_.Release();
}
inline void StaticInfo::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.symbol)
}

// string name_cn = 2 [json_name = "nameCn"];
inline void StaticInfo::clear_name_cn() {
  name_cn_.ClearToEmpty();
}
inline const std::string& StaticInfo::name_cn() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.name_cn)
  return _internal_name_cn();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_name_cn(ArgT0&& arg0, ArgT... args) {
 
 name_cn_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.name_cn)
}
inline std::string* StaticInfo::mutable_name_cn() {
  std::string* _s = _internal_mutable_name_cn();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.name_cn)
  return _s;
}
inline const std::string& StaticInfo::_internal_name_cn() const {
  return name_cn_.Get();
}
inline void StaticInfo::_internal_set_name_cn(const std::string& value) {
  
  name_cn_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_name_cn() {
  
  return name_cn_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_name_cn() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.name_cn)
  return name_cn_.Release();
}
inline void StaticInfo::set_allocated_name_cn(std::string* name_cn) {
  if (name_cn != nullptr) {
    
  } else {
    
  }
  name_cn_.SetAllocated(name_cn, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_cn_.IsDefault()) {
    name_cn_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.name_cn)
}

// string name_en = 3 [json_name = "nameEn"];
inline void StaticInfo::clear_name_en() {
  name_en_.ClearToEmpty();
}
inline const std::string& StaticInfo::name_en() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.name_en)
  return _internal_name_en();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_name_en(ArgT0&& arg0, ArgT... args) {
 
 name_en_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.name_en)
}
inline std::string* StaticInfo::mutable_name_en() {
  std::string* _s = _internal_mutable_name_en();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.name_en)
  return _s;
}
inline const std::string& StaticInfo::_internal_name_en() const {
  return name_en_.Get();
}
inline void StaticInfo::_internal_set_name_en(const std::string& value) {
  
  name_en_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_name_en() {
  
  return name_en_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_name_en() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.name_en)
  return name_en_.Release();
}
inline void StaticInfo::set_allocated_name_en(std::string* name_en) {
  if (name_en != nullptr) {
    
  } else {
    
  }
  name_en_.SetAllocated(name_en, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_en_.IsDefault()) {
    name_en_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.name_en)
}

// string name_hk = 4 [json_name = "nameHk"];
inline void StaticInfo::clear_name_hk() {
  name_hk_.ClearToEmpty();
}
inline const std::string& StaticInfo::name_hk() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.name_hk)
  return _internal_name_hk();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_name_hk(ArgT0&& arg0, ArgT... args) {
 
 name_hk_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.name_hk)
}
inline std::string* StaticInfo::mutable_name_hk() {
  std::string* _s = _internal_mutable_name_hk();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.name_hk)
  return _s;
}
inline const std::string& StaticInfo::_internal_name_hk() const {
  return name_hk_.Get();
}
inline void StaticInfo::_internal_set_name_hk(const std::string& value) {
  
  name_hk_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_name_hk() {
  
  return name_hk_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_name_hk() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.name_hk)
  return name_hk_.Release();
}
inline void StaticInfo::set_allocated_name_hk(std::string* name_hk) {
  if (name_hk != nullptr) {
    
  } else {
    
  }
  name_hk_.SetAllocated(name_hk, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_hk_.IsDefault()) {
    name_hk_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.name_hk)
}

// string listing_date = 5 [json_name = "listingDate"];
inline void StaticInfo::clear_listing_date() {
  listing_date_.ClearToEmpty();
}
inline const std::string& StaticInfo::listing_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.listing_date)
  return _internal_listing_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_listing_date(ArgT0&& arg0, ArgT... args) {
 
 listing_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.listing_date)
}
inline std::string* StaticInfo::mutable_listing_date() {
  std::string* _s = _internal_mutable_listing_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.listing_date)
  return _s;
}
inline const std::string& StaticInfo::_internal_listing_date() const {
  return listing_date_.Get();
}
inline void StaticInfo::_internal_set_listing_date(const std::string& value) {
  
  listing_date_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_listing_date() {
  
  return listing_date_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_listing_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.listing_date)
  return listing_date_.Release();
}
inline void StaticInfo::set_allocated_listing_date(std::string* listing_date) {
  if (listing_date != nullptr) {
    
  } else {
    
  }
  listing_date_.SetAllocated(listing_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (listing_date_.IsDefault()) {
    listing_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.listing_date)
}

// string exchange = 6 [json_name = "exchange"];
inline void StaticInfo::clear_exchange() {
  exchange_.ClearToEmpty();
}
inline const std::string& StaticInfo::exchange() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.exchange)
  return _internal_exchange();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_exchange(ArgT0&& arg0, ArgT... args) {
 
 exchange_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.exchange)
}
inline std::string* StaticInfo::mutable_exchange() {
  std::string* _s = _internal_mutable_exchange();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.exchange)
  return _s;
}
inline const std::string& StaticInfo::_internal_exchange() const {
  return exchange_.Get();
}
inline void StaticInfo::_internal_set_exchange(const std::string& value) {
  
  exchange_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_exchange() {
  
  return exchange_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_exchange() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.exchange)
  return exchange_.Release();
}
inline void StaticInfo::set_allocated_exchange(std::string* exchange) {
  if (exchange != nullptr) {
    
  } else {
    
  }
  exchange_.SetAllocated(exchange, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (exchange_.IsDefault()) {
    exchange_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.exchange)
}

// string currency = 7 [json_name = "currency"];
inline void StaticInfo::clear_currency() {
  currency_.ClearToEmpty();
}
inline const std::string& StaticInfo::currency() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.currency)
  return _internal_currency();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_currency(ArgT0&& arg0, ArgT... args) {
 
 currency_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.currency)
}
inline std::string* StaticInfo::mutable_currency() {
  std::string* _s = _internal_mutable_currency();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.currency)
  return _s;
}
inline const std::string& StaticInfo::_internal_currency() const {
  return currency_.Get();
}
inline void StaticInfo::_internal_set_currency(const std::string& value) {
  
  currency_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_currency() {
  
  return currency_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_currency() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.currency)
  return currency_.Release();
}
inline void StaticInfo::set_allocated_currency(std::string* currency) {
  if (currency != nullptr) {
    
  } else {
    
  }
  currency_.SetAllocated(currency, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (currency_.IsDefault()) {
    currency_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.currency)
}

// int32 lot_size = 8 [json_name = "lotSize"];
inline void StaticInfo::clear_lot_size() {
  lot_size_ = 0;
}
inline int32_t StaticInfo::_internal_lot_size() const {
  return lot_size_;
}
inline int32_t StaticInfo::lot_size() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.lot_size)
  return _internal_lot_size();
}
inline void StaticInfo::_internal_set_lot_size(int32_t value) {
  
  lot_size_ = value;
}
inline void StaticInfo::set_lot_size(int32_t value) {
  _internal_set_lot_size(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.lot_size)
}

// int64 total_shares = 9 [json_name = "totalShares"];
inline void StaticInfo::clear_total_shares() {
  total_shares_ = int64_t{0};
}
inline int64_t StaticInfo::_internal_total_shares() const {
  return total_shares_;
}
inline int64_t StaticInfo::total_shares() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.total_shares)
  return _internal_total_shares();
}
inline void StaticInfo::_internal_set_total_shares(int64_t value) {
  
  total_shares_ = value;
}
inline void StaticInfo::set_total_shares(int64_t value) {
  _internal_set_total_shares(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.total_shares)
}

// int64 circulating_shares = 10 [json_name = "circulatingShares"];
inline void StaticInfo::clear_circulating_shares() {
  circulating_shares_ = int64_t{0};
}
inline int64_t StaticInfo::_internal_circulating_shares() const {
  return circulating_shares_;
}
inline int64_t StaticInfo::circulating_shares() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.circulating_shares)
  return _internal_circulating_shares();
}
inline void StaticInfo::_internal_set_circulating_shares(int64_t value) {
  
  circulating_shares_ = value;
}
inline void StaticInfo::set_circulating_shares(int64_t value) {
  _internal_set_circulating_shares(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.circulating_shares)
}

// int64 hk_shares = 11 [json_name = "hkShares"];
inline void StaticInfo::clear_hk_shares() {
  hk_shares_ = int64_t{0};
}
inline int64_t StaticInfo::_internal_hk_shares() const {
  return hk_shares_;
}
inline int64_t StaticInfo::hk_shares() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.hk_shares)
  return _internal_hk_shares();
}
inline void StaticInfo::_internal_set_hk_shares(int64_t value) {
  
  hk_shares_ = value;
}
inline void StaticInfo::set_hk_shares(int64_t value) {
  _internal_set_hk_shares(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.hk_shares)
}

// string eps = 12 [json_name = "eps"];
inline void StaticInfo::clear_eps() {
  eps_.ClearToEmpty();
}
inline const std::string& StaticInfo::eps() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.eps)
  return _internal_eps();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_eps(ArgT0&& arg0, ArgT... args) {
 
 eps_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.eps)
}
inline std::string* StaticInfo::mutable_eps() {
  std::string* _s = _internal_mutable_eps();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.eps)
  return _s;
}
inline const std::string& StaticInfo::_internal_eps() const {
  return eps_.Get();
}
inline void StaticInfo::_internal_set_eps(const std::string& value) {
  
  eps_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_eps() {
  
  return eps_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_eps() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.eps)
  return eps_.Release();
}
inline void StaticInfo::set_allocated_eps(std::string* eps) {
  if (eps != nullptr) {
    
  } else {
    
  }
  eps_.SetAllocated(eps, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (eps_.IsDefault()) {
    eps_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.eps)
}

// string eps_ttm = 13 [json_name = "epsTtm"];
inline void StaticInfo::clear_eps_ttm() {
  eps_ttm_.ClearToEmpty();
}
inline const std::string& StaticInfo::eps_ttm() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.eps_ttm)
  return _internal_eps_ttm();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_eps_ttm(ArgT0&& arg0, ArgT... args) {
 
 eps_ttm_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.eps_ttm)
}
inline std::string* StaticInfo::mutable_eps_ttm() {
  std::string* _s = _internal_mutable_eps_ttm();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.eps_ttm)
  return _s;
}
inline const std::string& StaticInfo::_internal_eps_ttm() const {
  return eps_ttm_.Get();
}
inline void StaticInfo::_internal_set_eps_ttm(const std::string& value) {
  
  eps_ttm_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_eps_ttm() {
  
  return eps_ttm_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_eps_ttm() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.eps_ttm)
  return eps_ttm_.Release();
}
inline void StaticInfo::set_allocated_eps_ttm(std::string* eps_ttm) {
  if (eps_ttm != nullptr) {
    
  } else {
    
  }
  eps_ttm_.SetAllocated(eps_ttm, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (eps_ttm_.IsDefault()) {
    eps_ttm_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.eps_ttm)
}

// string bps = 14 [json_name = "bps"];
inline void StaticInfo::clear_bps() {
  bps_.ClearToEmpty();
}
inline const std::string& StaticInfo::bps() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.bps)
  return _internal_bps();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_bps(ArgT0&& arg0, ArgT... args) {
 
 bps_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.bps)
}
inline std::string* StaticInfo::mutable_bps() {
  std::string* _s = _internal_mutable_bps();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.bps)
  return _s;
}
inline const std::string& StaticInfo::_internal_bps() const {
  return bps_.Get();
}
inline void StaticInfo::_internal_set_bps(const std::string& value) {
  
  bps_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_bps() {
  
  return bps_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_bps() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.bps)
  return bps_.Release();
}
inline void StaticInfo::set_allocated_bps(std::string* bps) {
  if (bps != nullptr) {
    
  } else {
    
  }
  bps_.SetAllocated(bps, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (bps_.IsDefault()) {
    bps_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.bps)
}

// string dividend_yield = 15 [json_name = "dividendYield"];
inline void StaticInfo::clear_dividend_yield() {
  dividend_yield_.ClearToEmpty();
}
inline const std::string& StaticInfo::dividend_yield() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.dividend_yield)
  return _internal_dividend_yield();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_dividend_yield(ArgT0&& arg0, ArgT... args) {
 
 dividend_yield_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.dividend_yield)
}
inline std::string* StaticInfo::mutable_dividend_yield() {
  std::string* _s = _internal_mutable_dividend_yield();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.dividend_yield)
  return _s;
}
inline const std::string& StaticInfo::_internal_dividend_yield() const {
  return dividend_yield_.Get();
}
inline void StaticInfo::_internal_set_dividend_yield(const std::string& value) {
  
  dividend_yield_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_dividend_yield() {
  
  return dividend_yield_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_dividend_yield() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.dividend_yield)
  return dividend_yield_.Release();
}
inline void StaticInfo::set_allocated_dividend_yield(std::string* dividend_yield) {
  if (dividend_yield != nullptr) {
    
  } else {
    
  }
  dividend_yield_.SetAllocated(dividend_yield, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (dividend_yield_.IsDefault()) {
    dividend_yield_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.dividend_yield)
}

// repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
inline int StaticInfo::_internal_stock_derivatives_size() const {
  return stock_derivatives_.size();
}
inline int StaticInfo::stock_derivatives_size() const {
  return _internal_stock_derivatives_size();
}
inline void StaticInfo::clear_stock_derivatives() {
  stock_derivatives_.Clear();
}
inline int32_t StaticInfo::_internal_stock_derivatives(int index) const {
  return stock_derivatives_.Get(index);
}
inline int32_t StaticInfo::stock_derivatives(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.stock_derivatives)
  return _internal_stock_derivatives(index);
}
inline void StaticInfo::set_stock_derivatives(int index, int32_t value) {
  stock_derivatives_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.stock_derivatives)
}
inline void StaticInfo::_internal_add_stock_derivatives(int32_t value) {
  stock_derivatives_.Add(value);
}
inline void StaticInfo::add_stock_derivatives(int32_t value) {
  _internal_add_stock_derivatives(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.StaticInfo.stock_derivatives)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
StaticInfo::_internal_stock_derivatives() const {
  return stock_derivatives_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
StaticInfo::stock_derivatives() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.StaticInfo.stock_derivatives)
  return _internal_stock_derivatives();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
StaticInfo::_internal_mutable_stock_derivatives() {
  return &stock_derivatives_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
StaticInfo::mutable_stock_derivatives() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.StaticInfo.stock_derivatives)
  return _internal_mutable_stock_derivatives();
}

// string board = 17 [json_name = "board"];
inline void StaticInfo::clear_board() {
  board_.ClearToEmpty();
}
inline const std::string& StaticInfo::board() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StaticInfo.board)
  return _internal_board();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StaticInfo::set_board(ArgT0&& arg0, ArgT... args) {
 
 board_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StaticInfo.board)
}
inline std::string* StaticInfo::mutable_board() {
  std::string* _s = _internal_mutable_board();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StaticInfo.board)
  return _s;
}
inline const std::string& StaticInfo::_internal_board() const {
  return board_.Get();
}
inline void StaticInfo::_internal_set_board(const std::string& value) {
  
  board_.Set(value, GetArenaForAllocation());
}
inline std::string* StaticInfo::_internal_mutable_board() {
  
  return board_.Mutable(GetArenaForAllocation());
}
inline std::string* StaticInfo::release_board() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StaticInfo.board)
  return board_.Release();
}
inline void StaticInfo::set_allocated_board(std::string* board) {
  if (board != nullptr) {
    
  } else {
    
  }
  board_.SetAllocated(board, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (board_.IsDefault()) {
    board_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StaticInfo.board)
}

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

// SecurityQuoteResponse

// repeated .longbridge.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
inline int SecurityQuoteResponse::_internal_secu_quote_size() const {
  return secu_quote_.size();
}
inline int SecurityQuoteResponse::secu_quote_size() const {
  return _internal_secu_quote_size();
}
inline void SecurityQuoteResponse::clear_secu_quote() {
  secu_quote_.Clear();
}
inline ::longbridge::quote::v1::SecurityQuote* SecurityQuoteResponse::mutable_secu_quote(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuoteResponse.secu_quote)
  return secu_quote_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityQuote >*
SecurityQuoteResponse::mutable_secu_quote() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityQuoteResponse.secu_quote)
  return &secu_quote_;
}
inline const ::longbridge::quote::v1::SecurityQuote& SecurityQuoteResponse::_internal_secu_quote(int index) const {
  return secu_quote_.Get(index);
}
inline const ::longbridge::quote::v1::SecurityQuote& SecurityQuoteResponse::secu_quote(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuoteResponse.secu_quote)
  return _internal_secu_quote(index);
}
inline ::longbridge::quote::v1::SecurityQuote* SecurityQuoteResponse::_internal_add_secu_quote() {
  return secu_quote_.Add();
}
inline ::longbridge::quote::v1::SecurityQuote* SecurityQuoteResponse::add_secu_quote() {
  ::longbridge::quote::v1::SecurityQuote* _add = _internal_add_secu_quote();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityQuoteResponse.secu_quote)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityQuote >&
SecurityQuoteResponse::secu_quote() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityQuoteResponse.secu_quote)
  return secu_quote_;
}

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

// SecurityQuote

// string symbol = 1 [json_name = "symbol"];
inline void SecurityQuote::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityQuote::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.symbol)
}
inline std::string* SecurityQuote::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.symbol)
  return _s;
}
inline const std::string& SecurityQuote::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityQuote::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.symbol)
  return symbol_.Release();
}
inline void SecurityQuote::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.symbol)
}

// string last_done = 2 [json_name = "lastDone"];
inline void SecurityQuote::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& SecurityQuote::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.last_done)
}
inline std::string* SecurityQuote::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.last_done)
  return _s;
}
inline const std::string& SecurityQuote::_internal_last_done() const {
  return last_done_.Get();
}
inline void SecurityQuote::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.last_done)
  return last_done_.Release();
}
inline void SecurityQuote::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.last_done)
}

// string prev_close = 3 [json_name = "prevClose"];
inline void SecurityQuote::clear_prev_close() {
  prev_close_.ClearToEmpty();
}
inline const std::string& SecurityQuote::prev_close() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.prev_close)
  return _internal_prev_close();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_prev_close(ArgT0&& arg0, ArgT... args) {
 
 prev_close_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.prev_close)
}
inline std::string* SecurityQuote::mutable_prev_close() {
  std::string* _s = _internal_mutable_prev_close();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.prev_close)
  return _s;
}
inline const std::string& SecurityQuote::_internal_prev_close() const {
  return prev_close_.Get();
}
inline void SecurityQuote::_internal_set_prev_close(const std::string& value) {
  
  prev_close_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_prev_close() {
  
  return prev_close_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_prev_close() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.prev_close)
  return prev_close_.Release();
}
inline void SecurityQuote::set_allocated_prev_close(std::string* prev_close) {
  if (prev_close != nullptr) {
    
  } else {
    
  }
  prev_close_.SetAllocated(prev_close, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (prev_close_.IsDefault()) {
    prev_close_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.prev_close)
}

// string open = 4 [json_name = "open"];
inline void SecurityQuote::clear_open() {
  open_.ClearToEmpty();
}
inline const std::string& SecurityQuote::open() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.open)
  return _internal_open();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_open(ArgT0&& arg0, ArgT... args) {
 
 open_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.open)
}
inline std::string* SecurityQuote::mutable_open() {
  std::string* _s = _internal_mutable_open();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.open)
  return _s;
}
inline const std::string& SecurityQuote::_internal_open() const {
  return open_.Get();
}
inline void SecurityQuote::_internal_set_open(const std::string& value) {
  
  open_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_open() {
  
  return open_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_open() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.open)
  return open_.Release();
}
inline void SecurityQuote::set_allocated_open(std::string* open) {
  if (open != nullptr) {
    
  } else {
    
  }
  open_.SetAllocated(open, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (open_.IsDefault()) {
    open_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.open)
}

// string high = 5 [json_name = "high"];
inline void SecurityQuote::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& SecurityQuote::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.high)
}
inline std::string* SecurityQuote::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.high)
  return _s;
}
inline const std::string& SecurityQuote::_internal_high() const {
  return high_.Get();
}
inline void SecurityQuote::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.high)
  return high_.Release();
}
inline void SecurityQuote::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.high)
}

// string low = 6 [json_name = "low"];
inline void SecurityQuote::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& SecurityQuote::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.low)
}
inline std::string* SecurityQuote::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.low)
  return _s;
}
inline const std::string& SecurityQuote::_internal_low() const {
  return low_.Get();
}
inline void SecurityQuote::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.low)
  return low_.Release();
}
inline void SecurityQuote::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.low)
}

// int64 timestamp = 7 [json_name = "timestamp"];
inline void SecurityQuote::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t SecurityQuote::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t SecurityQuote::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.timestamp)
  return _internal_timestamp();
}
inline void SecurityQuote::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void SecurityQuote::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.timestamp)
}

// int64 volume = 8 [json_name = "volume"];
inline void SecurityQuote::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t SecurityQuote::_internal_volume() const {
  return volume_;
}
inline int64_t SecurityQuote::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.volume)
  return _internal_volume();
}
inline void SecurityQuote::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void SecurityQuote::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.volume)
}

// string turnover = 9 [json_name = "turnover"];
inline void SecurityQuote::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& SecurityQuote::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityQuote::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.turnover)
}
inline std::string* SecurityQuote::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.turnover)
  return _s;
}
inline const std::string& SecurityQuote::_internal_turnover() const {
  return turnover_.Get();
}
inline void SecurityQuote::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityQuote::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityQuote::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.turnover)
  return turnover_.Release();
}
inline void SecurityQuote::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.turnover)
}

// .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
inline void SecurityQuote::clear_trade_status() {
  trade_status_ = 0;
}
inline ::longbridge::quote::v1::TradeStatus SecurityQuote::_internal_trade_status() const {
  return static_cast< ::longbridge::quote::v1::TradeStatus >(trade_status_);
}
inline ::longbridge::quote::v1::TradeStatus SecurityQuote::trade_status() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.trade_status)
  return _internal_trade_status();
}
inline void SecurityQuote::_internal_set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  
  trade_status_ = value;
}
inline void SecurityQuote::set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  _internal_set_trade_status(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityQuote.trade_status)
}

// .longbridge.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
inline bool SecurityQuote::_internal_has_pre_market_quote() const {
  return this != internal_default_instance() && pre_market_quote_ != nullptr;
}
inline bool SecurityQuote::has_pre_market_quote() const {
  return _internal_has_pre_market_quote();
}
inline void SecurityQuote::clear_pre_market_quote() {
  if (GetArenaForAllocation() == nullptr && pre_market_quote_ != nullptr) {
    delete pre_market_quote_;
  }
  pre_market_quote_ = nullptr;
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::_internal_pre_market_quote() const {
  const ::longbridge::quote::v1::PrePostQuote* p = pre_market_quote_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::PrePostQuote&>(
      ::longbridge::quote::v1::_PrePostQuote_default_instance_);
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::pre_market_quote() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.pre_market_quote)
  return _internal_pre_market_quote();
}
inline void SecurityQuote::unsafe_arena_set_allocated_pre_market_quote(
    ::longbridge::quote::v1::PrePostQuote* pre_market_quote) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pre_market_quote_);
  }
  pre_market_quote_ = pre_market_quote;
  if (pre_market_quote) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.SecurityQuote.pre_market_quote)
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::release_pre_market_quote() {
  
  ::longbridge::quote::v1::PrePostQuote* temp = pre_market_quote_;
  pre_market_quote_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::unsafe_arena_release_pre_market_quote() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.pre_market_quote)
  
  ::longbridge::quote::v1::PrePostQuote* temp = pre_market_quote_;
  pre_market_quote_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::_internal_mutable_pre_market_quote() {
  
  if (pre_market_quote_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::PrePostQuote>(GetArenaForAllocation());
    pre_market_quote_ = p;
  }
  return pre_market_quote_;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::mutable_pre_market_quote() {
  ::longbridge::quote::v1::PrePostQuote* _msg = _internal_mutable_pre_market_quote();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.pre_market_quote)
  return _msg;
}
inline void SecurityQuote::set_allocated_pre_market_quote(::longbridge::quote::v1::PrePostQuote* pre_market_quote) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete pre_market_quote_;
  }
  if (pre_market_quote) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(pre_market_quote);
    if (message_arena != submessage_arena) {
      pre_market_quote = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pre_market_quote, submessage_arena);
    }
    
  } else {
    
  }
  pre_market_quote_ = pre_market_quote;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.pre_market_quote)
}

// .longbridge.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
inline bool SecurityQuote::_internal_has_post_market_quote() const {
  return this != internal_default_instance() && post_market_quote_ != nullptr;
}
inline bool SecurityQuote::has_post_market_quote() const {
  return _internal_has_post_market_quote();
}
inline void SecurityQuote::clear_post_market_quote() {
  if (GetArenaForAllocation() == nullptr && post_market_quote_ != nullptr) {
    delete post_market_quote_;
  }
  post_market_quote_ = nullptr;
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::_internal_post_market_quote() const {
  const ::longbridge::quote::v1::PrePostQuote* p = post_market_quote_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::PrePostQuote&>(
      ::longbridge::quote::v1::_PrePostQuote_default_instance_);
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::post_market_quote() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.post_market_quote)
  return _internal_post_market_quote();
}
inline void SecurityQuote::unsafe_arena_set_allocated_post_market_quote(
    ::longbridge::quote::v1::PrePostQuote* post_market_quote) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(post_market_quote_);
  }
  post_market_quote_ = post_market_quote;
  if (post_market_quote) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.SecurityQuote.post_market_quote)
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::release_post_market_quote() {
  
  ::longbridge::quote::v1::PrePostQuote* temp = post_market_quote_;
  post_market_quote_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::unsafe_arena_release_post_market_quote() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.post_market_quote)
  
  ::longbridge::quote::v1::PrePostQuote* temp = post_market_quote_;
  post_market_quote_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::_internal_mutable_post_market_quote() {
  
  if (post_market_quote_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::PrePostQuote>(GetArenaForAllocation());
    post_market_quote_ = p;
  }
  return post_market_quote_;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::mutable_post_market_quote() {
  ::longbridge::quote::v1::PrePostQuote* _msg = _internal_mutable_post_market_quote();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.post_market_quote)
  return _msg;
}
inline void SecurityQuote::set_allocated_post_market_quote(::longbridge::quote::v1::PrePostQuote* post_market_quote) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete post_market_quote_;
  }
  if (post_market_quote) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(post_market_quote);
    if (message_arena != submessage_arena) {
      post_market_quote = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, post_market_quote, submessage_arena);
    }
    
  } else {
    
  }
  post_market_quote_ = post_market_quote;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.post_market_quote)
}

// .longbridge.quote.v1.PrePostQuote over_night_quote = 13 [json_name = "overNightQuote"];
inline bool SecurityQuote::_internal_has_over_night_quote() const {
  return this != internal_default_instance() && over_night_quote_ != nullptr;
}
inline bool SecurityQuote::has_over_night_quote() const {
  return _internal_has_over_night_quote();
}
inline void SecurityQuote::clear_over_night_quote() {
  if (GetArenaForAllocation() == nullptr && over_night_quote_ != nullptr) {
    delete over_night_quote_;
  }
  over_night_quote_ = nullptr;
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::_internal_over_night_quote() const {
  const ::longbridge::quote::v1::PrePostQuote* p = over_night_quote_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::PrePostQuote&>(
      ::longbridge::quote::v1::_PrePostQuote_default_instance_);
}
inline const ::longbridge::quote::v1::PrePostQuote& SecurityQuote::over_night_quote() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityQuote.over_night_quote)
  return _internal_over_night_quote();
}
inline void SecurityQuote::unsafe_arena_set_allocated_over_night_quote(
    ::longbridge::quote::v1::PrePostQuote* over_night_quote) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(over_night_quote_);
  }
  over_night_quote_ = over_night_quote;
  if (over_night_quote) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.SecurityQuote.over_night_quote)
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::release_over_night_quote() {
  
  ::longbridge::quote::v1::PrePostQuote* temp = over_night_quote_;
  over_night_quote_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::unsafe_arena_release_over_night_quote() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityQuote.over_night_quote)
  
  ::longbridge::quote::v1::PrePostQuote* temp = over_night_quote_;
  over_night_quote_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::_internal_mutable_over_night_quote() {
  
  if (over_night_quote_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::PrePostQuote>(GetArenaForAllocation());
    over_night_quote_ = p;
  }
  return over_night_quote_;
}
inline ::longbridge::quote::v1::PrePostQuote* SecurityQuote::mutable_over_night_quote() {
  ::longbridge::quote::v1::PrePostQuote* _msg = _internal_mutable_over_night_quote();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityQuote.over_night_quote)
  return _msg;
}
inline void SecurityQuote::set_allocated_over_night_quote(::longbridge::quote::v1::PrePostQuote* over_night_quote) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete over_night_quote_;
  }
  if (over_night_quote) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(over_night_quote);
    if (message_arena != submessage_arena) {
      over_night_quote = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, over_night_quote, submessage_arena);
    }
    
  } else {
    
  }
  over_night_quote_ = over_night_quote;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityQuote.over_night_quote)
}

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

// PrePostQuote

// string last_done = 1 [json_name = "lastDone"];
inline void PrePostQuote::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& PrePostQuote::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PrePostQuote::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.last_done)
}
inline std::string* PrePostQuote::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PrePostQuote.last_done)
  return _s;
}
inline const std::string& PrePostQuote::_internal_last_done() const {
  return last_done_.Get();
}
inline void PrePostQuote::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* PrePostQuote::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* PrePostQuote::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PrePostQuote.last_done)
  return last_done_.Release();
}
inline void PrePostQuote::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PrePostQuote.last_done)
}

// int64 timestamp = 2 [json_name = "timestamp"];
inline void PrePostQuote::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t PrePostQuote::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t PrePostQuote::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.timestamp)
  return _internal_timestamp();
}
inline void PrePostQuote::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void PrePostQuote::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.timestamp)
}

// int64 volume = 3 [json_name = "volume"];
inline void PrePostQuote::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t PrePostQuote::_internal_volume() const {
  return volume_;
}
inline int64_t PrePostQuote::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.volume)
  return _internal_volume();
}
inline void PrePostQuote::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void PrePostQuote::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.volume)
}

// string turnover = 4 [json_name = "turnover"];
inline void PrePostQuote::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& PrePostQuote::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PrePostQuote::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.turnover)
}
inline std::string* PrePostQuote::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PrePostQuote.turnover)
  return _s;
}
inline const std::string& PrePostQuote::_internal_turnover() const {
  return turnover_.Get();
}
inline void PrePostQuote::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* PrePostQuote::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* PrePostQuote::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PrePostQuote.turnover)
  return turnover_.Release();
}
inline void PrePostQuote::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PrePostQuote.turnover)
}

// string high = 5 [json_name = "high"];
inline void PrePostQuote::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& PrePostQuote::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PrePostQuote::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.high)
}
inline std::string* PrePostQuote::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PrePostQuote.high)
  return _s;
}
inline const std::string& PrePostQuote::_internal_high() const {
  return high_.Get();
}
inline void PrePostQuote::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* PrePostQuote::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* PrePostQuote::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PrePostQuote.high)
  return high_.Release();
}
inline void PrePostQuote::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PrePostQuote.high)
}

// string low = 6 [json_name = "low"];
inline void PrePostQuote::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& PrePostQuote::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PrePostQuote::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.low)
}
inline std::string* PrePostQuote::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PrePostQuote.low)
  return _s;
}
inline const std::string& PrePostQuote::_internal_low() const {
  return low_.Get();
}
inline void PrePostQuote::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* PrePostQuote::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* PrePostQuote::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PrePostQuote.low)
  return low_.Release();
}
inline void PrePostQuote::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PrePostQuote.low)
}

// string prev_close = 7 [json_name = "prevClose"];
inline void PrePostQuote::clear_prev_close() {
  prev_close_.ClearToEmpty();
}
inline const std::string& PrePostQuote::prev_close() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PrePostQuote.prev_close)
  return _internal_prev_close();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PrePostQuote::set_prev_close(ArgT0&& arg0, ArgT... args) {
 
 prev_close_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PrePostQuote.prev_close)
}
inline std::string* PrePostQuote::mutable_prev_close() {
  std::string* _s = _internal_mutable_prev_close();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PrePostQuote.prev_close)
  return _s;
}
inline const std::string& PrePostQuote::_internal_prev_close() const {
  return prev_close_.Get();
}
inline void PrePostQuote::_internal_set_prev_close(const std::string& value) {
  
  prev_close_.Set(value, GetArenaForAllocation());
}
inline std::string* PrePostQuote::_internal_mutable_prev_close() {
  
  return prev_close_.Mutable(GetArenaForAllocation());
}
inline std::string* PrePostQuote::release_prev_close() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PrePostQuote.prev_close)
  return prev_close_.Release();
}
inline void PrePostQuote::set_allocated_prev_close(std::string* prev_close) {
  if (prev_close != nullptr) {
    
  } else {
    
  }
  prev_close_.SetAllocated(prev_close, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (prev_close_.IsDefault()) {
    prev_close_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PrePostQuote.prev_close)
}

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

// OptionQuoteResponse

// repeated .longbridge.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
inline int OptionQuoteResponse::_internal_secu_quote_size() const {
  return secu_quote_.size();
}
inline int OptionQuoteResponse::secu_quote_size() const {
  return _internal_secu_quote_size();
}
inline void OptionQuoteResponse::clear_secu_quote() {
  secu_quote_.Clear();
}
inline ::longbridge::quote::v1::OptionQuote* OptionQuoteResponse::mutable_secu_quote(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuoteResponse.secu_quote)
  return secu_quote_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::OptionQuote >*
OptionQuoteResponse::mutable_secu_quote() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.OptionQuoteResponse.secu_quote)
  return &secu_quote_;
}
inline const ::longbridge::quote::v1::OptionQuote& OptionQuoteResponse::_internal_secu_quote(int index) const {
  return secu_quote_.Get(index);
}
inline const ::longbridge::quote::v1::OptionQuote& OptionQuoteResponse::secu_quote(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuoteResponse.secu_quote)
  return _internal_secu_quote(index);
}
inline ::longbridge::quote::v1::OptionQuote* OptionQuoteResponse::_internal_add_secu_quote() {
  return secu_quote_.Add();
}
inline ::longbridge::quote::v1::OptionQuote* OptionQuoteResponse::add_secu_quote() {
  ::longbridge::quote::v1::OptionQuote* _add = _internal_add_secu_quote();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.OptionQuoteResponse.secu_quote)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::OptionQuote >&
OptionQuoteResponse::secu_quote() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.OptionQuoteResponse.secu_quote)
  return secu_quote_;
}

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

// OptionQuote

// string symbol = 1 [json_name = "symbol"];
inline void OptionQuote::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& OptionQuote::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.symbol)
}
inline std::string* OptionQuote::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.symbol)
  return _s;
}
inline const std::string& OptionQuote::_internal_symbol() const {
  return symbol_.Get();
}
inline void OptionQuote::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.symbol)
  return symbol_.Release();
}
inline void OptionQuote::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.symbol)
}

// string last_done = 2 [json_name = "lastDone"];
inline void OptionQuote::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& OptionQuote::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.last_done)
}
inline std::string* OptionQuote::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.last_done)
  return _s;
}
inline const std::string& OptionQuote::_internal_last_done() const {
  return last_done_.Get();
}
inline void OptionQuote::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.last_done)
  return last_done_.Release();
}
inline void OptionQuote::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.last_done)
}

// string prev_close = 3 [json_name = "prevClose"];
inline void OptionQuote::clear_prev_close() {
  prev_close_.ClearToEmpty();
}
inline const std::string& OptionQuote::prev_close() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.prev_close)
  return _internal_prev_close();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_prev_close(ArgT0&& arg0, ArgT... args) {
 
 prev_close_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.prev_close)
}
inline std::string* OptionQuote::mutable_prev_close() {
  std::string* _s = _internal_mutable_prev_close();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.prev_close)
  return _s;
}
inline const std::string& OptionQuote::_internal_prev_close() const {
  return prev_close_.Get();
}
inline void OptionQuote::_internal_set_prev_close(const std::string& value) {
  
  prev_close_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_prev_close() {
  
  return prev_close_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_prev_close() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.prev_close)
  return prev_close_.Release();
}
inline void OptionQuote::set_allocated_prev_close(std::string* prev_close) {
  if (prev_close != nullptr) {
    
  } else {
    
  }
  prev_close_.SetAllocated(prev_close, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (prev_close_.IsDefault()) {
    prev_close_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.prev_close)
}

// string open = 4 [json_name = "open"];
inline void OptionQuote::clear_open() {
  open_.ClearToEmpty();
}
inline const std::string& OptionQuote::open() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.open)
  return _internal_open();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_open(ArgT0&& arg0, ArgT... args) {
 
 open_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.open)
}
inline std::string* OptionQuote::mutable_open() {
  std::string* _s = _internal_mutable_open();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.open)
  return _s;
}
inline const std::string& OptionQuote::_internal_open() const {
  return open_.Get();
}
inline void OptionQuote::_internal_set_open(const std::string& value) {
  
  open_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_open() {
  
  return open_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_open() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.open)
  return open_.Release();
}
inline void OptionQuote::set_allocated_open(std::string* open) {
  if (open != nullptr) {
    
  } else {
    
  }
  open_.SetAllocated(open, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (open_.IsDefault()) {
    open_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.open)
}

// string high = 5 [json_name = "high"];
inline void OptionQuote::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& OptionQuote::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.high)
}
inline std::string* OptionQuote::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.high)
  return _s;
}
inline const std::string& OptionQuote::_internal_high() const {
  return high_.Get();
}
inline void OptionQuote::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.high)
  return high_.Release();
}
inline void OptionQuote::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.high)
}

// string low = 6 [json_name = "low"];
inline void OptionQuote::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& OptionQuote::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.low)
}
inline std::string* OptionQuote::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.low)
  return _s;
}
inline const std::string& OptionQuote::_internal_low() const {
  return low_.Get();
}
inline void OptionQuote::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.low)
  return low_.Release();
}
inline void OptionQuote::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.low)
}

// int64 timestamp = 7 [json_name = "timestamp"];
inline void OptionQuote::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t OptionQuote::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t OptionQuote::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.timestamp)
  return _internal_timestamp();
}
inline void OptionQuote::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void OptionQuote::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.timestamp)
}

// int64 volume = 8 [json_name = "volume"];
inline void OptionQuote::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t OptionQuote::_internal_volume() const {
  return volume_;
}
inline int64_t OptionQuote::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.volume)
  return _internal_volume();
}
inline void OptionQuote::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void OptionQuote::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.volume)
}

// string turnover = 9 [json_name = "turnover"];
inline void OptionQuote::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& OptionQuote::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionQuote::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.turnover)
}
inline std::string* OptionQuote::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.turnover)
  return _s;
}
inline const std::string& OptionQuote::_internal_turnover() const {
  return turnover_.Get();
}
inline void OptionQuote::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionQuote::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionQuote::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.turnover)
  return turnover_.Release();
}
inline void OptionQuote::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.turnover)
}

// .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
inline void OptionQuote::clear_trade_status() {
  trade_status_ = 0;
}
inline ::longbridge::quote::v1::TradeStatus OptionQuote::_internal_trade_status() const {
  return static_cast< ::longbridge::quote::v1::TradeStatus >(trade_status_);
}
inline ::longbridge::quote::v1::TradeStatus OptionQuote::trade_status() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.trade_status)
  return _internal_trade_status();
}
inline void OptionQuote::_internal_set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  
  trade_status_ = value;
}
inline void OptionQuote::set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  _internal_set_trade_status(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionQuote.trade_status)
}

// .longbridge.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
inline bool OptionQuote::_internal_has_option_extend() const {
  return this != internal_default_instance() && option_extend_ != nullptr;
}
inline bool OptionQuote::has_option_extend() const {
  return _internal_has_option_extend();
}
inline void OptionQuote::clear_option_extend() {
  if (GetArenaForAllocation() == nullptr && option_extend_ != nullptr) {
    delete option_extend_;
  }
  option_extend_ = nullptr;
}
inline const ::longbridge::quote::v1::OptionExtend& OptionQuote::_internal_option_extend() const {
  const ::longbridge::quote::v1::OptionExtend* p = option_extend_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::OptionExtend&>(
      ::longbridge::quote::v1::_OptionExtend_default_instance_);
}
inline const ::longbridge::quote::v1::OptionExtend& OptionQuote::option_extend() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionQuote.option_extend)
  return _internal_option_extend();
}
inline void OptionQuote::unsafe_arena_set_allocated_option_extend(
    ::longbridge::quote::v1::OptionExtend* option_extend) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(option_extend_);
  }
  option_extend_ = option_extend;
  if (option_extend) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.OptionQuote.option_extend)
}
inline ::longbridge::quote::v1::OptionExtend* OptionQuote::release_option_extend() {
  
  ::longbridge::quote::v1::OptionExtend* temp = option_extend_;
  option_extend_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::OptionExtend* OptionQuote::unsafe_arena_release_option_extend() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionQuote.option_extend)
  
  ::longbridge::quote::v1::OptionExtend* temp = option_extend_;
  option_extend_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::OptionExtend* OptionQuote::_internal_mutable_option_extend() {
  
  if (option_extend_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::OptionExtend>(GetArenaForAllocation());
    option_extend_ = p;
  }
  return option_extend_;
}
inline ::longbridge::quote::v1::OptionExtend* OptionQuote::mutable_option_extend() {
  ::longbridge::quote::v1::OptionExtend* _msg = _internal_mutable_option_extend();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionQuote.option_extend)
  return _msg;
}
inline void OptionQuote::set_allocated_option_extend(::longbridge::quote::v1::OptionExtend* option_extend) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete option_extend_;
  }
  if (option_extend) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(option_extend);
    if (message_arena != submessage_arena) {
      option_extend = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, option_extend, submessage_arena);
    }
    
  } else {
    
  }
  option_extend_ = option_extend;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionQuote.option_extend)
}

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

// OptionExtend

// string implied_volatility = 1 [json_name = "impliedVolatility"];
inline void OptionExtend::clear_implied_volatility() {
  implied_volatility_.ClearToEmpty();
}
inline const std::string& OptionExtend::implied_volatility() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.implied_volatility)
  return _internal_implied_volatility();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_implied_volatility(ArgT0&& arg0, ArgT... args) {
 
 implied_volatility_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.implied_volatility)
}
inline std::string* OptionExtend::mutable_implied_volatility() {
  std::string* _s = _internal_mutable_implied_volatility();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.implied_volatility)
  return _s;
}
inline const std::string& OptionExtend::_internal_implied_volatility() const {
  return implied_volatility_.Get();
}
inline void OptionExtend::_internal_set_implied_volatility(const std::string& value) {
  
  implied_volatility_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_implied_volatility() {
  
  return implied_volatility_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_implied_volatility() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.implied_volatility)
  return implied_volatility_.Release();
}
inline void OptionExtend::set_allocated_implied_volatility(std::string* implied_volatility) {
  if (implied_volatility != nullptr) {
    
  } else {
    
  }
  implied_volatility_.SetAllocated(implied_volatility, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (implied_volatility_.IsDefault()) {
    implied_volatility_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.implied_volatility)
}

// int64 open_interest = 2 [json_name = "openInterest"];
inline void OptionExtend::clear_open_interest() {
  open_interest_ = int64_t{0};
}
inline int64_t OptionExtend::_internal_open_interest() const {
  return open_interest_;
}
inline int64_t OptionExtend::open_interest() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.open_interest)
  return _internal_open_interest();
}
inline void OptionExtend::_internal_set_open_interest(int64_t value) {
  
  open_interest_ = value;
}
inline void OptionExtend::set_open_interest(int64_t value) {
  _internal_set_open_interest(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.open_interest)
}

// string expiry_date = 3 [json_name = "expiryDate"];
inline void OptionExtend::clear_expiry_date() {
  expiry_date_.ClearToEmpty();
}
inline const std::string& OptionExtend::expiry_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.expiry_date)
  return _internal_expiry_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_expiry_date(ArgT0&& arg0, ArgT... args) {
 
 expiry_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.expiry_date)
}
inline std::string* OptionExtend::mutable_expiry_date() {
  std::string* _s = _internal_mutable_expiry_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.expiry_date)
  return _s;
}
inline const std::string& OptionExtend::_internal_expiry_date() const {
  return expiry_date_.Get();
}
inline void OptionExtend::_internal_set_expiry_date(const std::string& value) {
  
  expiry_date_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_expiry_date() {
  
  return expiry_date_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_expiry_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.expiry_date)
  return expiry_date_.Release();
}
inline void OptionExtend::set_allocated_expiry_date(std::string* expiry_date) {
  if (expiry_date != nullptr) {
    
  } else {
    
  }
  expiry_date_.SetAllocated(expiry_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (expiry_date_.IsDefault()) {
    expiry_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.expiry_date)
}

// string strike_price = 4 [json_name = "strikePrice"];
inline void OptionExtend::clear_strike_price() {
  strike_price_.ClearToEmpty();
}
inline const std::string& OptionExtend::strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.strike_price)
  return _internal_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_strike_price(ArgT0&& arg0, ArgT... args) {
 
 strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.strike_price)
}
inline std::string* OptionExtend::mutable_strike_price() {
  std::string* _s = _internal_mutable_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.strike_price)
  return _s;
}
inline const std::string& OptionExtend::_internal_strike_price() const {
  return strike_price_.Get();
}
inline void OptionExtend::_internal_set_strike_price(const std::string& value) {
  
  strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_strike_price() {
  
  return strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.strike_price)
  return strike_price_.Release();
}
inline void OptionExtend::set_allocated_strike_price(std::string* strike_price) {
  if (strike_price != nullptr) {
    
  } else {
    
  }
  strike_price_.SetAllocated(strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (strike_price_.IsDefault()) {
    strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.strike_price)
}

// string contract_multiplier = 5 [json_name = "contractMultiplier"];
inline void OptionExtend::clear_contract_multiplier() {
  contract_multiplier_.ClearToEmpty();
}
inline const std::string& OptionExtend::contract_multiplier() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.contract_multiplier)
  return _internal_contract_multiplier();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_contract_multiplier(ArgT0&& arg0, ArgT... args) {
 
 contract_multiplier_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.contract_multiplier)
}
inline std::string* OptionExtend::mutable_contract_multiplier() {
  std::string* _s = _internal_mutable_contract_multiplier();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.contract_multiplier)
  return _s;
}
inline const std::string& OptionExtend::_internal_contract_multiplier() const {
  return contract_multiplier_.Get();
}
inline void OptionExtend::_internal_set_contract_multiplier(const std::string& value) {
  
  contract_multiplier_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_contract_multiplier() {
  
  return contract_multiplier_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_contract_multiplier() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.contract_multiplier)
  return contract_multiplier_.Release();
}
inline void OptionExtend::set_allocated_contract_multiplier(std::string* contract_multiplier) {
  if (contract_multiplier != nullptr) {
    
  } else {
    
  }
  contract_multiplier_.SetAllocated(contract_multiplier, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (contract_multiplier_.IsDefault()) {
    contract_multiplier_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.contract_multiplier)
}

// string contract_type = 6 [json_name = "contractType"];
inline void OptionExtend::clear_contract_type() {
  contract_type_.ClearToEmpty();
}
inline const std::string& OptionExtend::contract_type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.contract_type)
  return _internal_contract_type();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_contract_type(ArgT0&& arg0, ArgT... args) {
 
 contract_type_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.contract_type)
}
inline std::string* OptionExtend::mutable_contract_type() {
  std::string* _s = _internal_mutable_contract_type();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.contract_type)
  return _s;
}
inline const std::string& OptionExtend::_internal_contract_type() const {
  return contract_type_.Get();
}
inline void OptionExtend::_internal_set_contract_type(const std::string& value) {
  
  contract_type_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_contract_type() {
  
  return contract_type_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_contract_type() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.contract_type)
  return contract_type_.Release();
}
inline void OptionExtend::set_allocated_contract_type(std::string* contract_type) {
  if (contract_type != nullptr) {
    
  } else {
    
  }
  contract_type_.SetAllocated(contract_type, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (contract_type_.IsDefault()) {
    contract_type_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.contract_type)
}

// string contract_size = 7 [json_name = "contractSize"];
inline void OptionExtend::clear_contract_size() {
  contract_size_.ClearToEmpty();
}
inline const std::string& OptionExtend::contract_size() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.contract_size)
  return _internal_contract_size();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_contract_size(ArgT0&& arg0, ArgT... args) {
 
 contract_size_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.contract_size)
}
inline std::string* OptionExtend::mutable_contract_size() {
  std::string* _s = _internal_mutable_contract_size();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.contract_size)
  return _s;
}
inline const std::string& OptionExtend::_internal_contract_size() const {
  return contract_size_.Get();
}
inline void OptionExtend::_internal_set_contract_size(const std::string& value) {
  
  contract_size_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_contract_size() {
  
  return contract_size_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_contract_size() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.contract_size)
  return contract_size_.Release();
}
inline void OptionExtend::set_allocated_contract_size(std::string* contract_size) {
  if (contract_size != nullptr) {
    
  } else {
    
  }
  contract_size_.SetAllocated(contract_size, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (contract_size_.IsDefault()) {
    contract_size_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.contract_size)
}

// string direction = 8 [json_name = "direction"];
inline void OptionExtend::clear_direction() {
  direction_.ClearToEmpty();
}
inline const std::string& OptionExtend::direction() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.direction)
  return _internal_direction();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_direction(ArgT0&& arg0, ArgT... args) {
 
 direction_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.direction)
}
inline std::string* OptionExtend::mutable_direction() {
  std::string* _s = _internal_mutable_direction();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.direction)
  return _s;
}
inline const std::string& OptionExtend::_internal_direction() const {
  return direction_.Get();
}
inline void OptionExtend::_internal_set_direction(const std::string& value) {
  
  direction_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_direction() {
  
  return direction_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_direction() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.direction)
  return direction_.Release();
}
inline void OptionExtend::set_allocated_direction(std::string* direction) {
  if (direction != nullptr) {
    
  } else {
    
  }
  direction_.SetAllocated(direction, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (direction_.IsDefault()) {
    direction_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.direction)
}

// string historical_volatility = 9 [json_name = "historicalVolatility"];
inline void OptionExtend::clear_historical_volatility() {
  historical_volatility_.ClearToEmpty();
}
inline const std::string& OptionExtend::historical_volatility() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.historical_volatility)
  return _internal_historical_volatility();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_historical_volatility(ArgT0&& arg0, ArgT... args) {
 
 historical_volatility_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.historical_volatility)
}
inline std::string* OptionExtend::mutable_historical_volatility() {
  std::string* _s = _internal_mutable_historical_volatility();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.historical_volatility)
  return _s;
}
inline const std::string& OptionExtend::_internal_historical_volatility() const {
  return historical_volatility_.Get();
}
inline void OptionExtend::_internal_set_historical_volatility(const std::string& value) {
  
  historical_volatility_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_historical_volatility() {
  
  return historical_volatility_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_historical_volatility() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.historical_volatility)
  return historical_volatility_.Release();
}
inline void OptionExtend::set_allocated_historical_volatility(std::string* historical_volatility) {
  if (historical_volatility != nullptr) {
    
  } else {
    
  }
  historical_volatility_.SetAllocated(historical_volatility, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (historical_volatility_.IsDefault()) {
    historical_volatility_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.historical_volatility)
}

// string underlying_symbol = 10 [json_name = "underlyingSymbol"];
inline void OptionExtend::clear_underlying_symbol() {
  underlying_symbol_.ClearToEmpty();
}
inline const std::string& OptionExtend::underlying_symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionExtend.underlying_symbol)
  return _internal_underlying_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionExtend::set_underlying_symbol(ArgT0&& arg0, ArgT... args) {
 
 underlying_symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionExtend.underlying_symbol)
}
inline std::string* OptionExtend::mutable_underlying_symbol() {
  std::string* _s = _internal_mutable_underlying_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionExtend.underlying_symbol)
  return _s;
}
inline const std::string& OptionExtend::_internal_underlying_symbol() const {
  return underlying_symbol_.Get();
}
inline void OptionExtend::_internal_set_underlying_symbol(const std::string& value) {
  
  underlying_symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionExtend::_internal_mutable_underlying_symbol() {
  
  return underlying_symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionExtend::release_underlying_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionExtend.underlying_symbol)
  return underlying_symbol_.Release();
}
inline void OptionExtend::set_allocated_underlying_symbol(std::string* underlying_symbol) {
  if (underlying_symbol != nullptr) {
    
  } else {
    
  }
  underlying_symbol_.SetAllocated(underlying_symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (underlying_symbol_.IsDefault()) {
    underlying_symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionExtend.underlying_symbol)
}

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

// WarrantQuoteResponse

// repeated .longbridge.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
inline int WarrantQuoteResponse::_internal_secu_quote_size() const {
  return secu_quote_.size();
}
inline int WarrantQuoteResponse::secu_quote_size() const {
  return _internal_secu_quote_size();
}
inline void WarrantQuoteResponse::clear_secu_quote() {
  secu_quote_.Clear();
}
inline ::longbridge::quote::v1::WarrantQuote* WarrantQuoteResponse::mutable_secu_quote(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuoteResponse.secu_quote)
  return secu_quote_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::WarrantQuote >*
WarrantQuoteResponse::mutable_secu_quote() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.WarrantQuoteResponse.secu_quote)
  return &secu_quote_;
}
inline const ::longbridge::quote::v1::WarrantQuote& WarrantQuoteResponse::_internal_secu_quote(int index) const {
  return secu_quote_.Get(index);
}
inline const ::longbridge::quote::v1::WarrantQuote& WarrantQuoteResponse::secu_quote(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuoteResponse.secu_quote)
  return _internal_secu_quote(index);
}
inline ::longbridge::quote::v1::WarrantQuote* WarrantQuoteResponse::_internal_add_secu_quote() {
  return secu_quote_.Add();
}
inline ::longbridge::quote::v1::WarrantQuote* WarrantQuoteResponse::add_secu_quote() {
  ::longbridge::quote::v1::WarrantQuote* _add = _internal_add_secu_quote();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.WarrantQuoteResponse.secu_quote)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::WarrantQuote >&
WarrantQuoteResponse::secu_quote() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.WarrantQuoteResponse.secu_quote)
  return secu_quote_;
}

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

// WarrantQuote

// string symbol = 1 [json_name = "symbol"];
inline void WarrantQuote::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& WarrantQuote::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.symbol)
}
inline std::string* WarrantQuote::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.symbol)
  return _s;
}
inline const std::string& WarrantQuote::_internal_symbol() const {
  return symbol_.Get();
}
inline void WarrantQuote::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.symbol)
  return symbol_.Release();
}
inline void WarrantQuote::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.symbol)
}

// string last_done = 2 [json_name = "lastDone"];
inline void WarrantQuote::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& WarrantQuote::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.last_done)
}
inline std::string* WarrantQuote::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.last_done)
  return _s;
}
inline const std::string& WarrantQuote::_internal_last_done() const {
  return last_done_.Get();
}
inline void WarrantQuote::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.last_done)
  return last_done_.Release();
}
inline void WarrantQuote::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.last_done)
}

// string prev_close = 3 [json_name = "prevClose"];
inline void WarrantQuote::clear_prev_close() {
  prev_close_.ClearToEmpty();
}
inline const std::string& WarrantQuote::prev_close() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.prev_close)
  return _internal_prev_close();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_prev_close(ArgT0&& arg0, ArgT... args) {
 
 prev_close_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.prev_close)
}
inline std::string* WarrantQuote::mutable_prev_close() {
  std::string* _s = _internal_mutable_prev_close();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.prev_close)
  return _s;
}
inline const std::string& WarrantQuote::_internal_prev_close() const {
  return prev_close_.Get();
}
inline void WarrantQuote::_internal_set_prev_close(const std::string& value) {
  
  prev_close_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_prev_close() {
  
  return prev_close_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_prev_close() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.prev_close)
  return prev_close_.Release();
}
inline void WarrantQuote::set_allocated_prev_close(std::string* prev_close) {
  if (prev_close != nullptr) {
    
  } else {
    
  }
  prev_close_.SetAllocated(prev_close, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (prev_close_.IsDefault()) {
    prev_close_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.prev_close)
}

// string open = 4 [json_name = "open"];
inline void WarrantQuote::clear_open() {
  open_.ClearToEmpty();
}
inline const std::string& WarrantQuote::open() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.open)
  return _internal_open();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_open(ArgT0&& arg0, ArgT... args) {
 
 open_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.open)
}
inline std::string* WarrantQuote::mutable_open() {
  std::string* _s = _internal_mutable_open();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.open)
  return _s;
}
inline const std::string& WarrantQuote::_internal_open() const {
  return open_.Get();
}
inline void WarrantQuote::_internal_set_open(const std::string& value) {
  
  open_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_open() {
  
  return open_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_open() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.open)
  return open_.Release();
}
inline void WarrantQuote::set_allocated_open(std::string* open) {
  if (open != nullptr) {
    
  } else {
    
  }
  open_.SetAllocated(open, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (open_.IsDefault()) {
    open_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.open)
}

// string high = 5 [json_name = "high"];
inline void WarrantQuote::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& WarrantQuote::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.high)
}
inline std::string* WarrantQuote::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.high)
  return _s;
}
inline const std::string& WarrantQuote::_internal_high() const {
  return high_.Get();
}
inline void WarrantQuote::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.high)
  return high_.Release();
}
inline void WarrantQuote::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.high)
}

// string low = 6 [json_name = "low"];
inline void WarrantQuote::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& WarrantQuote::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.low)
}
inline std::string* WarrantQuote::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.low)
  return _s;
}
inline const std::string& WarrantQuote::_internal_low() const {
  return low_.Get();
}
inline void WarrantQuote::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.low)
  return low_.Release();
}
inline void WarrantQuote::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.low)
}

// int64 timestamp = 7 [json_name = "timestamp"];
inline void WarrantQuote::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t WarrantQuote::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t WarrantQuote::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.timestamp)
  return _internal_timestamp();
}
inline void WarrantQuote::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void WarrantQuote::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.timestamp)
}

// int64 volume = 8 [json_name = "volume"];
inline void WarrantQuote::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t WarrantQuote::_internal_volume() const {
  return volume_;
}
inline int64_t WarrantQuote::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.volume)
  return _internal_volume();
}
inline void WarrantQuote::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void WarrantQuote::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.volume)
}

// string turnover = 9 [json_name = "turnover"];
inline void WarrantQuote::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& WarrantQuote::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantQuote::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.turnover)
}
inline std::string* WarrantQuote::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.turnover)
  return _s;
}
inline const std::string& WarrantQuote::_internal_turnover() const {
  return turnover_.Get();
}
inline void WarrantQuote::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantQuote::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantQuote::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.turnover)
  return turnover_.Release();
}
inline void WarrantQuote::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.turnover)
}

// .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
inline void WarrantQuote::clear_trade_status() {
  trade_status_ = 0;
}
inline ::longbridge::quote::v1::TradeStatus WarrantQuote::_internal_trade_status() const {
  return static_cast< ::longbridge::quote::v1::TradeStatus >(trade_status_);
}
inline ::longbridge::quote::v1::TradeStatus WarrantQuote::trade_status() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.trade_status)
  return _internal_trade_status();
}
inline void WarrantQuote::_internal_set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  
  trade_status_ = value;
}
inline void WarrantQuote::set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  _internal_set_trade_status(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantQuote.trade_status)
}

// .longbridge.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
inline bool WarrantQuote::_internal_has_warrant_extend() const {
  return this != internal_default_instance() && warrant_extend_ != nullptr;
}
inline bool WarrantQuote::has_warrant_extend() const {
  return _internal_has_warrant_extend();
}
inline void WarrantQuote::clear_warrant_extend() {
  if (GetArenaForAllocation() == nullptr && warrant_extend_ != nullptr) {
    delete warrant_extend_;
  }
  warrant_extend_ = nullptr;
}
inline const ::longbridge::quote::v1::WarrantExtend& WarrantQuote::_internal_warrant_extend() const {
  const ::longbridge::quote::v1::WarrantExtend* p = warrant_extend_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::WarrantExtend&>(
      ::longbridge::quote::v1::_WarrantExtend_default_instance_);
}
inline const ::longbridge::quote::v1::WarrantExtend& WarrantQuote::warrant_extend() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantQuote.warrant_extend)
  return _internal_warrant_extend();
}
inline void WarrantQuote::unsafe_arena_set_allocated_warrant_extend(
    ::longbridge::quote::v1::WarrantExtend* warrant_extend) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(warrant_extend_);
  }
  warrant_extend_ = warrant_extend;
  if (warrant_extend) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.WarrantQuote.warrant_extend)
}
inline ::longbridge::quote::v1::WarrantExtend* WarrantQuote::release_warrant_extend() {
  
  ::longbridge::quote::v1::WarrantExtend* temp = warrant_extend_;
  warrant_extend_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::WarrantExtend* WarrantQuote::unsafe_arena_release_warrant_extend() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantQuote.warrant_extend)
  
  ::longbridge::quote::v1::WarrantExtend* temp = warrant_extend_;
  warrant_extend_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::WarrantExtend* WarrantQuote::_internal_mutable_warrant_extend() {
  
  if (warrant_extend_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::WarrantExtend>(GetArenaForAllocation());
    warrant_extend_ = p;
  }
  return warrant_extend_;
}
inline ::longbridge::quote::v1::WarrantExtend* WarrantQuote::mutable_warrant_extend() {
  ::longbridge::quote::v1::WarrantExtend* _msg = _internal_mutable_warrant_extend();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantQuote.warrant_extend)
  return _msg;
}
inline void WarrantQuote::set_allocated_warrant_extend(::longbridge::quote::v1::WarrantExtend* warrant_extend) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete warrant_extend_;
  }
  if (warrant_extend) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(warrant_extend);
    if (message_arena != submessage_arena) {
      warrant_extend = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, warrant_extend, submessage_arena);
    }
    
  } else {
    
  }
  warrant_extend_ = warrant_extend;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantQuote.warrant_extend)
}

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

// WarrantExtend

// string implied_volatility = 1 [json_name = "impliedVolatility"];
inline void WarrantExtend::clear_implied_volatility() {
  implied_volatility_.ClearToEmpty();
}
inline const std::string& WarrantExtend::implied_volatility() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.implied_volatility)
  return _internal_implied_volatility();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_implied_volatility(ArgT0&& arg0, ArgT... args) {
 
 implied_volatility_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.implied_volatility)
}
inline std::string* WarrantExtend::mutable_implied_volatility() {
  std::string* _s = _internal_mutable_implied_volatility();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.implied_volatility)
  return _s;
}
inline const std::string& WarrantExtend::_internal_implied_volatility() const {
  return implied_volatility_.Get();
}
inline void WarrantExtend::_internal_set_implied_volatility(const std::string& value) {
  
  implied_volatility_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_implied_volatility() {
  
  return implied_volatility_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_implied_volatility() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.implied_volatility)
  return implied_volatility_.Release();
}
inline void WarrantExtend::set_allocated_implied_volatility(std::string* implied_volatility) {
  if (implied_volatility != nullptr) {
    
  } else {
    
  }
  implied_volatility_.SetAllocated(implied_volatility, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (implied_volatility_.IsDefault()) {
    implied_volatility_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.implied_volatility)
}

// string expiry_date = 2 [json_name = "expiryDate"];
inline void WarrantExtend::clear_expiry_date() {
  expiry_date_.ClearToEmpty();
}
inline const std::string& WarrantExtend::expiry_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.expiry_date)
  return _internal_expiry_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_expiry_date(ArgT0&& arg0, ArgT... args) {
 
 expiry_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.expiry_date)
}
inline std::string* WarrantExtend::mutable_expiry_date() {
  std::string* _s = _internal_mutable_expiry_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.expiry_date)
  return _s;
}
inline const std::string& WarrantExtend::_internal_expiry_date() const {
  return expiry_date_.Get();
}
inline void WarrantExtend::_internal_set_expiry_date(const std::string& value) {
  
  expiry_date_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_expiry_date() {
  
  return expiry_date_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_expiry_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.expiry_date)
  return expiry_date_.Release();
}
inline void WarrantExtend::set_allocated_expiry_date(std::string* expiry_date) {
  if (expiry_date != nullptr) {
    
  } else {
    
  }
  expiry_date_.SetAllocated(expiry_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (expiry_date_.IsDefault()) {
    expiry_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.expiry_date)
}

// string last_trade_date = 3 [json_name = "lastTradeDate"];
inline void WarrantExtend::clear_last_trade_date() {
  last_trade_date_.ClearToEmpty();
}
inline const std::string& WarrantExtend::last_trade_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.last_trade_date)
  return _internal_last_trade_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_last_trade_date(ArgT0&& arg0, ArgT... args) {
 
 last_trade_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.last_trade_date)
}
inline std::string* WarrantExtend::mutable_last_trade_date() {
  std::string* _s = _internal_mutable_last_trade_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.last_trade_date)
  return _s;
}
inline const std::string& WarrantExtend::_internal_last_trade_date() const {
  return last_trade_date_.Get();
}
inline void WarrantExtend::_internal_set_last_trade_date(const std::string& value) {
  
  last_trade_date_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_last_trade_date() {
  
  return last_trade_date_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_last_trade_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.last_trade_date)
  return last_trade_date_.Release();
}
inline void WarrantExtend::set_allocated_last_trade_date(std::string* last_trade_date) {
  if (last_trade_date != nullptr) {
    
  } else {
    
  }
  last_trade_date_.SetAllocated(last_trade_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_trade_date_.IsDefault()) {
    last_trade_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.last_trade_date)
}

// string outstanding_ratio = 4 [json_name = "outstandingRatio"];
inline void WarrantExtend::clear_outstanding_ratio() {
  outstanding_ratio_.ClearToEmpty();
}
inline const std::string& WarrantExtend::outstanding_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.outstanding_ratio)
  return _internal_outstanding_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_outstanding_ratio(ArgT0&& arg0, ArgT... args) {
 
 outstanding_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.outstanding_ratio)
}
inline std::string* WarrantExtend::mutable_outstanding_ratio() {
  std::string* _s = _internal_mutable_outstanding_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.outstanding_ratio)
  return _s;
}
inline const std::string& WarrantExtend::_internal_outstanding_ratio() const {
  return outstanding_ratio_.Get();
}
inline void WarrantExtend::_internal_set_outstanding_ratio(const std::string& value) {
  
  outstanding_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_outstanding_ratio() {
  
  return outstanding_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_outstanding_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.outstanding_ratio)
  return outstanding_ratio_.Release();
}
inline void WarrantExtend::set_allocated_outstanding_ratio(std::string* outstanding_ratio) {
  if (outstanding_ratio != nullptr) {
    
  } else {
    
  }
  outstanding_ratio_.SetAllocated(outstanding_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (outstanding_ratio_.IsDefault()) {
    outstanding_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.outstanding_ratio)
}

// int64 outstanding_qty = 5 [json_name = "outstandingQty"];
inline void WarrantExtend::clear_outstanding_qty() {
  outstanding_qty_ = int64_t{0};
}
inline int64_t WarrantExtend::_internal_outstanding_qty() const {
  return outstanding_qty_;
}
inline int64_t WarrantExtend::outstanding_qty() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.outstanding_qty)
  return _internal_outstanding_qty();
}
inline void WarrantExtend::_internal_set_outstanding_qty(int64_t value) {
  
  outstanding_qty_ = value;
}
inline void WarrantExtend::set_outstanding_qty(int64_t value) {
  _internal_set_outstanding_qty(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.outstanding_qty)
}

// string conversion_ratio = 6 [json_name = "conversionRatio"];
inline void WarrantExtend::clear_conversion_ratio() {
  conversion_ratio_.ClearToEmpty();
}
inline const std::string& WarrantExtend::conversion_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.conversion_ratio)
  return _internal_conversion_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_conversion_ratio(ArgT0&& arg0, ArgT... args) {
 
 conversion_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.conversion_ratio)
}
inline std::string* WarrantExtend::mutable_conversion_ratio() {
  std::string* _s = _internal_mutable_conversion_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.conversion_ratio)
  return _s;
}
inline const std::string& WarrantExtend::_internal_conversion_ratio() const {
  return conversion_ratio_.Get();
}
inline void WarrantExtend::_internal_set_conversion_ratio(const std::string& value) {
  
  conversion_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_conversion_ratio() {
  
  return conversion_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_conversion_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.conversion_ratio)
  return conversion_ratio_.Release();
}
inline void WarrantExtend::set_allocated_conversion_ratio(std::string* conversion_ratio) {
  if (conversion_ratio != nullptr) {
    
  } else {
    
  }
  conversion_ratio_.SetAllocated(conversion_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (conversion_ratio_.IsDefault()) {
    conversion_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.conversion_ratio)
}

// string category = 7 [json_name = "category"];
inline void WarrantExtend::clear_category() {
  category_.ClearToEmpty();
}
inline const std::string& WarrantExtend::category() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.category)
  return _internal_category();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_category(ArgT0&& arg0, ArgT... args) {
 
 category_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.category)
}
inline std::string* WarrantExtend::mutable_category() {
  std::string* _s = _internal_mutable_category();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.category)
  return _s;
}
inline const std::string& WarrantExtend::_internal_category() const {
  return category_.Get();
}
inline void WarrantExtend::_internal_set_category(const std::string& value) {
  
  category_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_category() {
  
  return category_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_category() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.category)
  return category_.Release();
}
inline void WarrantExtend::set_allocated_category(std::string* category) {
  if (category != nullptr) {
    
  } else {
    
  }
  category_.SetAllocated(category, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (category_.IsDefault()) {
    category_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.category)
}

// string strike_price = 8 [json_name = "strikePrice"];
inline void WarrantExtend::clear_strike_price() {
  strike_price_.ClearToEmpty();
}
inline const std::string& WarrantExtend::strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.strike_price)
  return _internal_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_strike_price(ArgT0&& arg0, ArgT... args) {
 
 strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.strike_price)
}
inline std::string* WarrantExtend::mutable_strike_price() {
  std::string* _s = _internal_mutable_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.strike_price)
  return _s;
}
inline const std::string& WarrantExtend::_internal_strike_price() const {
  return strike_price_.Get();
}
inline void WarrantExtend::_internal_set_strike_price(const std::string& value) {
  
  strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_strike_price() {
  
  return strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.strike_price)
  return strike_price_.Release();
}
inline void WarrantExtend::set_allocated_strike_price(std::string* strike_price) {
  if (strike_price != nullptr) {
    
  } else {
    
  }
  strike_price_.SetAllocated(strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (strike_price_.IsDefault()) {
    strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.strike_price)
}

// string upper_strike_price = 9 [json_name = "upperStrikePrice"];
inline void WarrantExtend::clear_upper_strike_price() {
  upper_strike_price_.ClearToEmpty();
}
inline const std::string& WarrantExtend::upper_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.upper_strike_price)
  return _internal_upper_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_upper_strike_price(ArgT0&& arg0, ArgT... args) {
 
 upper_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.upper_strike_price)
}
inline std::string* WarrantExtend::mutable_upper_strike_price() {
  std::string* _s = _internal_mutable_upper_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.upper_strike_price)
  return _s;
}
inline const std::string& WarrantExtend::_internal_upper_strike_price() const {
  return upper_strike_price_.Get();
}
inline void WarrantExtend::_internal_set_upper_strike_price(const std::string& value) {
  
  upper_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_upper_strike_price() {
  
  return upper_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_upper_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.upper_strike_price)
  return upper_strike_price_.Release();
}
inline void WarrantExtend::set_allocated_upper_strike_price(std::string* upper_strike_price) {
  if (upper_strike_price != nullptr) {
    
  } else {
    
  }
  upper_strike_price_.SetAllocated(upper_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (upper_strike_price_.IsDefault()) {
    upper_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.upper_strike_price)
}

// string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
inline void WarrantExtend::clear_lower_strike_price() {
  lower_strike_price_.ClearToEmpty();
}
inline const std::string& WarrantExtend::lower_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.lower_strike_price)
  return _internal_lower_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_lower_strike_price(ArgT0&& arg0, ArgT... args) {
 
 lower_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.lower_strike_price)
}
inline std::string* WarrantExtend::mutable_lower_strike_price() {
  std::string* _s = _internal_mutable_lower_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.lower_strike_price)
  return _s;
}
inline const std::string& WarrantExtend::_internal_lower_strike_price() const {
  return lower_strike_price_.Get();
}
inline void WarrantExtend::_internal_set_lower_strike_price(const std::string& value) {
  
  lower_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_lower_strike_price() {
  
  return lower_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_lower_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.lower_strike_price)
  return lower_strike_price_.Release();
}
inline void WarrantExtend::set_allocated_lower_strike_price(std::string* lower_strike_price) {
  if (lower_strike_price != nullptr) {
    
  } else {
    
  }
  lower_strike_price_.SetAllocated(lower_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (lower_strike_price_.IsDefault()) {
    lower_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.lower_strike_price)
}

// string call_price = 11 [json_name = "callPrice"];
inline void WarrantExtend::clear_call_price() {
  call_price_.ClearToEmpty();
}
inline const std::string& WarrantExtend::call_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.call_price)
  return _internal_call_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_call_price(ArgT0&& arg0, ArgT... args) {
 
 call_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.call_price)
}
inline std::string* WarrantExtend::mutable_call_price() {
  std::string* _s = _internal_mutable_call_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.call_price)
  return _s;
}
inline const std::string& WarrantExtend::_internal_call_price() const {
  return call_price_.Get();
}
inline void WarrantExtend::_internal_set_call_price(const std::string& value) {
  
  call_price_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_call_price() {
  
  return call_price_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_call_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.call_price)
  return call_price_.Release();
}
inline void WarrantExtend::set_allocated_call_price(std::string* call_price) {
  if (call_price != nullptr) {
    
  } else {
    
  }
  call_price_.SetAllocated(call_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (call_price_.IsDefault()) {
    call_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.call_price)
}

// string underlying_symbol = 12 [json_name = "underlyingSymbol"];
inline void WarrantExtend::clear_underlying_symbol() {
  underlying_symbol_.ClearToEmpty();
}
inline const std::string& WarrantExtend::underlying_symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantExtend.underlying_symbol)
  return _internal_underlying_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantExtend::set_underlying_symbol(ArgT0&& arg0, ArgT... args) {
 
 underlying_symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantExtend.underlying_symbol)
}
inline std::string* WarrantExtend::mutable_underlying_symbol() {
  std::string* _s = _internal_mutable_underlying_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantExtend.underlying_symbol)
  return _s;
}
inline const std::string& WarrantExtend::_internal_underlying_symbol() const {
  return underlying_symbol_.Get();
}
inline void WarrantExtend::_internal_set_underlying_symbol(const std::string& value) {
  
  underlying_symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantExtend::_internal_mutable_underlying_symbol() {
  
  return underlying_symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantExtend::release_underlying_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantExtend.underlying_symbol)
  return underlying_symbol_.Release();
}
inline void WarrantExtend::set_allocated_underlying_symbol(std::string* underlying_symbol) {
  if (underlying_symbol != nullptr) {
    
  } else {
    
  }
  underlying_symbol_.SetAllocated(underlying_symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (underlying_symbol_.IsDefault()) {
    underlying_symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantExtend.underlying_symbol)
}

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

// SecurityDepthResponse

// string symbol = 1 [json_name = "symbol"];
inline void SecurityDepthResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityDepthResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityDepthResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityDepthResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityDepthResponse.symbol)
}
inline std::string* SecurityDepthResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityDepthResponse.symbol)
  return _s;
}
inline const std::string& SecurityDepthResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityDepthResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityDepthResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityDepthResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityDepthResponse.symbol)
  return symbol_.Release();
}
inline void SecurityDepthResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityDepthResponse.symbol)
}

// repeated .longbridge.quote.v1.Depth ask = 2 [json_name = "ask"];
inline int SecurityDepthResponse::_internal_ask_size() const {
  return ask_.size();
}
inline int SecurityDepthResponse::ask_size() const {
  return _internal_ask_size();
}
inline void SecurityDepthResponse::clear_ask() {
  ask_.Clear();
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::mutable_ask(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityDepthResponse.ask)
  return ask_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
SecurityDepthResponse::mutable_ask() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityDepthResponse.ask)
  return &ask_;
}
inline const ::longbridge::quote::v1::Depth& SecurityDepthResponse::_internal_ask(int index) const {
  return ask_.Get(index);
}
inline const ::longbridge::quote::v1::Depth& SecurityDepthResponse::ask(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityDepthResponse.ask)
  return _internal_ask(index);
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::_internal_add_ask() {
  return ask_.Add();
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::add_ask() {
  ::longbridge::quote::v1::Depth* _add = _internal_add_ask();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityDepthResponse.ask)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
SecurityDepthResponse::ask() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityDepthResponse.ask)
  return ask_;
}

// repeated .longbridge.quote.v1.Depth bid = 3 [json_name = "bid"];
inline int SecurityDepthResponse::_internal_bid_size() const {
  return bid_.size();
}
inline int SecurityDepthResponse::bid_size() const {
  return _internal_bid_size();
}
inline void SecurityDepthResponse::clear_bid() {
  bid_.Clear();
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::mutable_bid(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityDepthResponse.bid)
  return bid_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
SecurityDepthResponse::mutable_bid() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityDepthResponse.bid)
  return &bid_;
}
inline const ::longbridge::quote::v1::Depth& SecurityDepthResponse::_internal_bid(int index) const {
  return bid_.Get(index);
}
inline const ::longbridge::quote::v1::Depth& SecurityDepthResponse::bid(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityDepthResponse.bid)
  return _internal_bid(index);
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::_internal_add_bid() {
  return bid_.Add();
}
inline ::longbridge::quote::v1::Depth* SecurityDepthResponse::add_bid() {
  ::longbridge::quote::v1::Depth* _add = _internal_add_bid();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityDepthResponse.bid)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
SecurityDepthResponse::bid() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityDepthResponse.bid)
  return bid_;
}

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

// Depth

// int32 position = 1 [json_name = "position"];
inline void Depth::clear_position() {
  position_ = 0;
}
inline int32_t Depth::_internal_position() const {
  return position_;
}
inline int32_t Depth::position() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Depth.position)
  return _internal_position();
}
inline void Depth::_internal_set_position(int32_t value) {
  
  position_ = value;
}
inline void Depth::set_position(int32_t value) {
  _internal_set_position(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Depth.position)
}

// string price = 2 [json_name = "price"];
inline void Depth::clear_price() {
  price_.ClearToEmpty();
}
inline const std::string& Depth::price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Depth.price)
  return _internal_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Depth::set_price(ArgT0&& arg0, ArgT... args) {
 
 price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Depth.price)
}
inline std::string* Depth::mutable_price() {
  std::string* _s = _internal_mutable_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Depth.price)
  return _s;
}
inline const std::string& Depth::_internal_price() const {
  return price_.Get();
}
inline void Depth::_internal_set_price(const std::string& value) {
  
  price_.Set(value, GetArenaForAllocation());
}
inline std::string* Depth::_internal_mutable_price() {
  
  return price_.Mutable(GetArenaForAllocation());
}
inline std::string* Depth::release_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Depth.price)
  return price_.Release();
}
inline void Depth::set_allocated_price(std::string* price) {
  if (price != nullptr) {
    
  } else {
    
  }
  price_.SetAllocated(price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (price_.IsDefault()) {
    price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Depth.price)
}

// int64 volume = 3 [json_name = "volume"];
inline void Depth::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t Depth::_internal_volume() const {
  return volume_;
}
inline int64_t Depth::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Depth.volume)
  return _internal_volume();
}
inline void Depth::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void Depth::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Depth.volume)
}

// int64 order_num = 4 [json_name = "orderNum"];
inline void Depth::clear_order_num() {
  order_num_ = int64_t{0};
}
inline int64_t Depth::_internal_order_num() const {
  return order_num_;
}
inline int64_t Depth::order_num() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Depth.order_num)
  return _internal_order_num();
}
inline void Depth::_internal_set_order_num(int64_t value) {
  
  order_num_ = value;
}
inline void Depth::set_order_num(int64_t value) {
  _internal_set_order_num(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Depth.order_num)
}

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

// SecurityBrokersResponse

// string symbol = 1 [json_name = "symbol"];
inline void SecurityBrokersResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityBrokersResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityBrokersResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityBrokersResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityBrokersResponse.symbol)
}
inline std::string* SecurityBrokersResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityBrokersResponse.symbol)
  return _s;
}
inline const std::string& SecurityBrokersResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityBrokersResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityBrokersResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityBrokersResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityBrokersResponse.symbol)
  return symbol_.Release();
}
inline void SecurityBrokersResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityBrokersResponse.symbol)
}

// repeated .longbridge.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
inline int SecurityBrokersResponse::_internal_ask_brokers_size() const {
  return ask_brokers_.size();
}
inline int SecurityBrokersResponse::ask_brokers_size() const {
  return _internal_ask_brokers_size();
}
inline void SecurityBrokersResponse::clear_ask_brokers() {
  ask_brokers_.Clear();
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::mutable_ask_brokers(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityBrokersResponse.ask_brokers)
  return ask_brokers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
SecurityBrokersResponse::mutable_ask_brokers() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityBrokersResponse.ask_brokers)
  return &ask_brokers_;
}
inline const ::longbridge::quote::v1::Brokers& SecurityBrokersResponse::_internal_ask_brokers(int index) const {
  return ask_brokers_.Get(index);
}
inline const ::longbridge::quote::v1::Brokers& SecurityBrokersResponse::ask_brokers(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityBrokersResponse.ask_brokers)
  return _internal_ask_brokers(index);
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::_internal_add_ask_brokers() {
  return ask_brokers_.Add();
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::add_ask_brokers() {
  ::longbridge::quote::v1::Brokers* _add = _internal_add_ask_brokers();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityBrokersResponse.ask_brokers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
SecurityBrokersResponse::ask_brokers() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityBrokersResponse.ask_brokers)
  return ask_brokers_;
}

// repeated .longbridge.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
inline int SecurityBrokersResponse::_internal_bid_brokers_size() const {
  return bid_brokers_.size();
}
inline int SecurityBrokersResponse::bid_brokers_size() const {
  return _internal_bid_brokers_size();
}
inline void SecurityBrokersResponse::clear_bid_brokers() {
  bid_brokers_.Clear();
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::mutable_bid_brokers(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityBrokersResponse.bid_brokers)
  return bid_brokers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
SecurityBrokersResponse::mutable_bid_brokers() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityBrokersResponse.bid_brokers)
  return &bid_brokers_;
}
inline const ::longbridge::quote::v1::Brokers& SecurityBrokersResponse::_internal_bid_brokers(int index) const {
  return bid_brokers_.Get(index);
}
inline const ::longbridge::quote::v1::Brokers& SecurityBrokersResponse::bid_brokers(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityBrokersResponse.bid_brokers)
  return _internal_bid_brokers(index);
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::_internal_add_bid_brokers() {
  return bid_brokers_.Add();
}
inline ::longbridge::quote::v1::Brokers* SecurityBrokersResponse::add_bid_brokers() {
  ::longbridge::quote::v1::Brokers* _add = _internal_add_bid_brokers();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityBrokersResponse.bid_brokers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
SecurityBrokersResponse::bid_brokers() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityBrokersResponse.bid_brokers)
  return bid_brokers_;
}

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

// Brokers

// int32 position = 1 [json_name = "position"];
inline void Brokers::clear_position() {
  position_ = 0;
}
inline int32_t Brokers::_internal_position() const {
  return position_;
}
inline int32_t Brokers::position() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Brokers.position)
  return _internal_position();
}
inline void Brokers::_internal_set_position(int32_t value) {
  
  position_ = value;
}
inline void Brokers::set_position(int32_t value) {
  _internal_set_position(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Brokers.position)
}

// repeated int32 broker_ids = 2 [json_name = "brokerIds"];
inline int Brokers::_internal_broker_ids_size() const {
  return broker_ids_.size();
}
inline int Brokers::broker_ids_size() const {
  return _internal_broker_ids_size();
}
inline void Brokers::clear_broker_ids() {
  broker_ids_.Clear();
}
inline int32_t Brokers::_internal_broker_ids(int index) const {
  return broker_ids_.Get(index);
}
inline int32_t Brokers::broker_ids(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Brokers.broker_ids)
  return _internal_broker_ids(index);
}
inline void Brokers::set_broker_ids(int index, int32_t value) {
  broker_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Brokers.broker_ids)
}
inline void Brokers::_internal_add_broker_ids(int32_t value) {
  broker_ids_.Add(value);
}
inline void Brokers::add_broker_ids(int32_t value) {
  _internal_add_broker_ids(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.Brokers.broker_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
Brokers::_internal_broker_ids() const {
  return broker_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
Brokers::broker_ids() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.Brokers.broker_ids)
  return _internal_broker_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
Brokers::_internal_mutable_broker_ids() {
  return &broker_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
Brokers::mutable_broker_ids() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.Brokers.broker_ids)
  return _internal_mutable_broker_ids();
}

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

// ParticipantBrokerIdsResponse

// repeated .longbridge.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
inline int ParticipantBrokerIdsResponse::_internal_participant_broker_numbers_size() const {
  return participant_broker_numbers_.size();
}
inline int ParticipantBrokerIdsResponse::participant_broker_numbers_size() const {
  return _internal_participant_broker_numbers_size();
}
inline void ParticipantBrokerIdsResponse::clear_participant_broker_numbers() {
  participant_broker_numbers_.Clear();
}
inline ::longbridge::quote::v1::ParticipantInfo* ParticipantBrokerIdsResponse::mutable_participant_broker_numbers(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers)
  return participant_broker_numbers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::ParticipantInfo >*
ParticipantBrokerIdsResponse::mutable_participant_broker_numbers() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers)
  return &participant_broker_numbers_;
}
inline const ::longbridge::quote::v1::ParticipantInfo& ParticipantBrokerIdsResponse::_internal_participant_broker_numbers(int index) const {
  return participant_broker_numbers_.Get(index);
}
inline const ::longbridge::quote::v1::ParticipantInfo& ParticipantBrokerIdsResponse::participant_broker_numbers(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers)
  return _internal_participant_broker_numbers(index);
}
inline ::longbridge::quote::v1::ParticipantInfo* ParticipantBrokerIdsResponse::_internal_add_participant_broker_numbers() {
  return participant_broker_numbers_.Add();
}
inline ::longbridge::quote::v1::ParticipantInfo* ParticipantBrokerIdsResponse::add_participant_broker_numbers() {
  ::longbridge::quote::v1::ParticipantInfo* _add = _internal_add_participant_broker_numbers();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::ParticipantInfo >&
ParticipantBrokerIdsResponse::participant_broker_numbers() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers)
  return participant_broker_numbers_;
}

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

// ParticipantInfo

// repeated int32 broker_ids = 1 [json_name = "brokerIds"];
inline int ParticipantInfo::_internal_broker_ids_size() const {
  return broker_ids_.size();
}
inline int ParticipantInfo::broker_ids_size() const {
  return _internal_broker_ids_size();
}
inline void ParticipantInfo::clear_broker_ids() {
  broker_ids_.Clear();
}
inline int32_t ParticipantInfo::_internal_broker_ids(int index) const {
  return broker_ids_.Get(index);
}
inline int32_t ParticipantInfo::broker_ids(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.ParticipantInfo.broker_ids)
  return _internal_broker_ids(index);
}
inline void ParticipantInfo::set_broker_ids(int index, int32_t value) {
  broker_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.ParticipantInfo.broker_ids)
}
inline void ParticipantInfo::_internal_add_broker_ids(int32_t value) {
  broker_ids_.Add(value);
}
inline void ParticipantInfo::add_broker_ids(int32_t value) {
  _internal_add_broker_ids(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.ParticipantInfo.broker_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
ParticipantInfo::_internal_broker_ids() const {
  return broker_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
ParticipantInfo::broker_ids() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.ParticipantInfo.broker_ids)
  return _internal_broker_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
ParticipantInfo::_internal_mutable_broker_ids() {
  return &broker_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
ParticipantInfo::mutable_broker_ids() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.ParticipantInfo.broker_ids)
  return _internal_mutable_broker_ids();
}

// string participant_name_cn = 2 [json_name = "participantNameCn"];
inline void ParticipantInfo::clear_participant_name_cn() {
  participant_name_cn_.ClearToEmpty();
}
inline const std::string& ParticipantInfo::participant_name_cn() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.ParticipantInfo.participant_name_cn)
  return _internal_participant_name_cn();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ParticipantInfo::set_participant_name_cn(ArgT0&& arg0, ArgT... args) {
 
 participant_name_cn_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.ParticipantInfo.participant_name_cn)
}
inline std::string* ParticipantInfo::mutable_participant_name_cn() {
  std::string* _s = _internal_mutable_participant_name_cn();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.ParticipantInfo.participant_name_cn)
  return _s;
}
inline const std::string& ParticipantInfo::_internal_participant_name_cn() const {
  return participant_name_cn_.Get();
}
inline void ParticipantInfo::_internal_set_participant_name_cn(const std::string& value) {
  
  participant_name_cn_.Set(value, GetArenaForAllocation());
}
inline std::string* ParticipantInfo::_internal_mutable_participant_name_cn() {
  
  return participant_name_cn_.Mutable(GetArenaForAllocation());
}
inline std::string* ParticipantInfo::release_participant_name_cn() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.ParticipantInfo.participant_name_cn)
  return participant_name_cn_.Release();
}
inline void ParticipantInfo::set_allocated_participant_name_cn(std::string* participant_name_cn) {
  if (participant_name_cn != nullptr) {
    
  } else {
    
  }
  participant_name_cn_.SetAllocated(participant_name_cn, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (participant_name_cn_.IsDefault()) {
    participant_name_cn_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.ParticipantInfo.participant_name_cn)
}

// string participant_name_en = 3 [json_name = "participantNameEn"];
inline void ParticipantInfo::clear_participant_name_en() {
  participant_name_en_.ClearToEmpty();
}
inline const std::string& ParticipantInfo::participant_name_en() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.ParticipantInfo.participant_name_en)
  return _internal_participant_name_en();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ParticipantInfo::set_participant_name_en(ArgT0&& arg0, ArgT... args) {
 
 participant_name_en_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.ParticipantInfo.participant_name_en)
}
inline std::string* ParticipantInfo::mutable_participant_name_en() {
  std::string* _s = _internal_mutable_participant_name_en();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.ParticipantInfo.participant_name_en)
  return _s;
}
inline const std::string& ParticipantInfo::_internal_participant_name_en() const {
  return participant_name_en_.Get();
}
inline void ParticipantInfo::_internal_set_participant_name_en(const std::string& value) {
  
  participant_name_en_.Set(value, GetArenaForAllocation());
}
inline std::string* ParticipantInfo::_internal_mutable_participant_name_en() {
  
  return participant_name_en_.Mutable(GetArenaForAllocation());
}
inline std::string* ParticipantInfo::release_participant_name_en() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.ParticipantInfo.participant_name_en)
  return participant_name_en_.Release();
}
inline void ParticipantInfo::set_allocated_participant_name_en(std::string* participant_name_en) {
  if (participant_name_en != nullptr) {
    
  } else {
    
  }
  participant_name_en_.SetAllocated(participant_name_en, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (participant_name_en_.IsDefault()) {
    participant_name_en_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.ParticipantInfo.participant_name_en)
}

// string participant_name_hk = 4 [json_name = "participantNameHk"];
inline void ParticipantInfo::clear_participant_name_hk() {
  participant_name_hk_.ClearToEmpty();
}
inline const std::string& ParticipantInfo::participant_name_hk() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.ParticipantInfo.participant_name_hk)
  return _internal_participant_name_hk();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ParticipantInfo::set_participant_name_hk(ArgT0&& arg0, ArgT... args) {
 
 participant_name_hk_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.ParticipantInfo.participant_name_hk)
}
inline std::string* ParticipantInfo::mutable_participant_name_hk() {
  std::string* _s = _internal_mutable_participant_name_hk();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.ParticipantInfo.participant_name_hk)
  return _s;
}
inline const std::string& ParticipantInfo::_internal_participant_name_hk() const {
  return participant_name_hk_.Get();
}
inline void ParticipantInfo::_internal_set_participant_name_hk(const std::string& value) {
  
  participant_name_hk_.Set(value, GetArenaForAllocation());
}
inline std::string* ParticipantInfo::_internal_mutable_participant_name_hk() {
  
  return participant_name_hk_.Mutable(GetArenaForAllocation());
}
inline std::string* ParticipantInfo::release_participant_name_hk() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.ParticipantInfo.participant_name_hk)
  return participant_name_hk_.Release();
}
inline void ParticipantInfo::set_allocated_participant_name_hk(std::string* participant_name_hk) {
  if (participant_name_hk != nullptr) {
    
  } else {
    
  }
  participant_name_hk_.SetAllocated(participant_name_hk, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (participant_name_hk_.IsDefault()) {
    participant_name_hk_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.ParticipantInfo.participant_name_hk)
}

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

// SecurityTradeRequest

// string symbol = 1 [json_name = "symbol"];
inline void SecurityTradeRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityTradeRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityTradeRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityTradeRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityTradeRequest.symbol)
}
inline std::string* SecurityTradeRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityTradeRequest.symbol)
  return _s;
}
inline const std::string& SecurityTradeRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityTradeRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityTradeRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityTradeRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityTradeRequest.symbol)
  return symbol_.Release();
}
inline void SecurityTradeRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityTradeRequest.symbol)
}

// int32 count = 2 [json_name = "count"];
inline void SecurityTradeRequest::clear_count() {
  count_ = 0;
}
inline int32_t SecurityTradeRequest::_internal_count() const {
  return count_;
}
inline int32_t SecurityTradeRequest::count() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityTradeRequest.count)
  return _internal_count();
}
inline void SecurityTradeRequest::_internal_set_count(int32_t value) {
  
  count_ = value;
}
inline void SecurityTradeRequest::set_count(int32_t value) {
  _internal_set_count(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityTradeRequest.count)
}

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

// SecurityTradeResponse

// string symbol = 1 [json_name = "symbol"];
inline void SecurityTradeResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityTradeResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityTradeResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityTradeResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityTradeResponse.symbol)
}
inline std::string* SecurityTradeResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityTradeResponse.symbol)
  return _s;
}
inline const std::string& SecurityTradeResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityTradeResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityTradeResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityTradeResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityTradeResponse.symbol)
  return symbol_.Release();
}
inline void SecurityTradeResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityTradeResponse.symbol)
}

// repeated .longbridge.quote.v1.Trade trades = 2 [json_name = "trades"];
inline int SecurityTradeResponse::_internal_trades_size() const {
  return trades_.size();
}
inline int SecurityTradeResponse::trades_size() const {
  return _internal_trades_size();
}
inline void SecurityTradeResponse::clear_trades() {
  trades_.Clear();
}
inline ::longbridge::quote::v1::Trade* SecurityTradeResponse::mutable_trades(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityTradeResponse.trades)
  return trades_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >*
SecurityTradeResponse::mutable_trades() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityTradeResponse.trades)
  return &trades_;
}
inline const ::longbridge::quote::v1::Trade& SecurityTradeResponse::_internal_trades(int index) const {
  return trades_.Get(index);
}
inline const ::longbridge::quote::v1::Trade& SecurityTradeResponse::trades(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityTradeResponse.trades)
  return _internal_trades(index);
}
inline ::longbridge::quote::v1::Trade* SecurityTradeResponse::_internal_add_trades() {
  return trades_.Add();
}
inline ::longbridge::quote::v1::Trade* SecurityTradeResponse::add_trades() {
  ::longbridge::quote::v1::Trade* _add = _internal_add_trades();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityTradeResponse.trades)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >&
SecurityTradeResponse::trades() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityTradeResponse.trades)
  return trades_;
}

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

// Trade

// string price = 1 [json_name = "price"];
inline void Trade::clear_price() {
  price_.ClearToEmpty();
}
inline const std::string& Trade::price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.price)
  return _internal_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Trade::set_price(ArgT0&& arg0, ArgT... args) {
 
 price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.price)
}
inline std::string* Trade::mutable_price() {
  std::string* _s = _internal_mutable_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Trade.price)
  return _s;
}
inline const std::string& Trade::_internal_price() const {
  return price_.Get();
}
inline void Trade::_internal_set_price(const std::string& value) {
  
  price_.Set(value, GetArenaForAllocation());
}
inline std::string* Trade::_internal_mutable_price() {
  
  return price_.Mutable(GetArenaForAllocation());
}
inline std::string* Trade::release_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Trade.price)
  return price_.Release();
}
inline void Trade::set_allocated_price(std::string* price) {
  if (price != nullptr) {
    
  } else {
    
  }
  price_.SetAllocated(price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (price_.IsDefault()) {
    price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Trade.price)
}

// int64 volume = 2 [json_name = "volume"];
inline void Trade::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t Trade::_internal_volume() const {
  return volume_;
}
inline int64_t Trade::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.volume)
  return _internal_volume();
}
inline void Trade::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void Trade::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.volume)
}

// int64 timestamp = 3 [json_name = "timestamp"];
inline void Trade::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t Trade::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t Trade::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.timestamp)
  return _internal_timestamp();
}
inline void Trade::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void Trade::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.timestamp)
}

// string trade_type = 4 [json_name = "tradeType"];
inline void Trade::clear_trade_type() {
  trade_type_.ClearToEmpty();
}
inline const std::string& Trade::trade_type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.trade_type)
  return _internal_trade_type();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Trade::set_trade_type(ArgT0&& arg0, ArgT... args) {
 
 trade_type_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.trade_type)
}
inline std::string* Trade::mutable_trade_type() {
  std::string* _s = _internal_mutable_trade_type();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Trade.trade_type)
  return _s;
}
inline const std::string& Trade::_internal_trade_type() const {
  return trade_type_.Get();
}
inline void Trade::_internal_set_trade_type(const std::string& value) {
  
  trade_type_.Set(value, GetArenaForAllocation());
}
inline std::string* Trade::_internal_mutable_trade_type() {
  
  return trade_type_.Mutable(GetArenaForAllocation());
}
inline std::string* Trade::release_trade_type() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Trade.trade_type)
  return trade_type_.Release();
}
inline void Trade::set_allocated_trade_type(std::string* trade_type) {
  if (trade_type != nullptr) {
    
  } else {
    
  }
  trade_type_.SetAllocated(trade_type, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (trade_type_.IsDefault()) {
    trade_type_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Trade.trade_type)
}

// int32 direction = 5 [json_name = "direction"];
inline void Trade::clear_direction() {
  direction_ = 0;
}
inline int32_t Trade::_internal_direction() const {
  return direction_;
}
inline int32_t Trade::direction() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.direction)
  return _internal_direction();
}
inline void Trade::_internal_set_direction(int32_t value) {
  
  direction_ = value;
}
inline void Trade::set_direction(int32_t value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.direction)
}

// .longbridge.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
inline void Trade::clear_trade_session() {
  trade_session_ = 0;
}
inline ::longbridge::quote::v1::TradeSession Trade::_internal_trade_session() const {
  return static_cast< ::longbridge::quote::v1::TradeSession >(trade_session_);
}
inline ::longbridge::quote::v1::TradeSession Trade::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Trade.trade_session)
  return _internal_trade_session();
}
inline void Trade::_internal_set_trade_session(::longbridge::quote::v1::TradeSession value) {
  
  trade_session_ = value;
}
inline void Trade::set_trade_session(::longbridge::quote::v1::TradeSession value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Trade.trade_session)
}

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

// SecurityIntradayRequest

// string symbol = 1 [json_name = "symbol"];
inline void SecurityIntradayRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityIntradayRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityIntradayRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityIntradayRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityIntradayRequest.symbol)
}
inline std::string* SecurityIntradayRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityIntradayRequest.symbol)
  return _s;
}
inline const std::string& SecurityIntradayRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityIntradayRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityIntradayRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityIntradayRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityIntradayRequest.symbol)
  return symbol_.Release();
}
inline void SecurityIntradayRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityIntradayRequest.symbol)
}

// int32 trade_session = 2 [json_name = "tradeSession"];
inline void SecurityIntradayRequest::clear_trade_session() {
  trade_session_ = 0;
}
inline int32_t SecurityIntradayRequest::_internal_trade_session() const {
  return trade_session_;
}
inline int32_t SecurityIntradayRequest::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityIntradayRequest.trade_session)
  return _internal_trade_session();
}
inline void SecurityIntradayRequest::_internal_set_trade_session(int32_t value) {
  
  trade_session_ = value;
}
inline void SecurityIntradayRequest::set_trade_session(int32_t value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityIntradayRequest.trade_session)
}

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

// SecurityIntradayResponse

// string symbol = 1 [json_name = "symbol"];
inline void SecurityIntradayResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityIntradayResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityIntradayResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityIntradayResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityIntradayResponse.symbol)
}
inline std::string* SecurityIntradayResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityIntradayResponse.symbol)
  return _s;
}
inline const std::string& SecurityIntradayResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityIntradayResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityIntradayResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityIntradayResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityIntradayResponse.symbol)
  return symbol_.Release();
}
inline void SecurityIntradayResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityIntradayResponse.symbol)
}

// repeated .longbridge.quote.v1.Line lines = 2 [json_name = "lines"];
inline int SecurityIntradayResponse::_internal_lines_size() const {
  return lines_.size();
}
inline int SecurityIntradayResponse::lines_size() const {
  return _internal_lines_size();
}
inline void SecurityIntradayResponse::clear_lines() {
  lines_.Clear();
}
inline ::longbridge::quote::v1::Line* SecurityIntradayResponse::mutable_lines(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityIntradayResponse.lines)
  return lines_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Line >*
SecurityIntradayResponse::mutable_lines() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityIntradayResponse.lines)
  return &lines_;
}
inline const ::longbridge::quote::v1::Line& SecurityIntradayResponse::_internal_lines(int index) const {
  return lines_.Get(index);
}
inline const ::longbridge::quote::v1::Line& SecurityIntradayResponse::lines(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityIntradayResponse.lines)
  return _internal_lines(index);
}
inline ::longbridge::quote::v1::Line* SecurityIntradayResponse::_internal_add_lines() {
  return lines_.Add();
}
inline ::longbridge::quote::v1::Line* SecurityIntradayResponse::add_lines() {
  ::longbridge::quote::v1::Line* _add = _internal_add_lines();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityIntradayResponse.lines)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Line >&
SecurityIntradayResponse::lines() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityIntradayResponse.lines)
  return lines_;
}

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

// Line

// string price = 1 [json_name = "price"];
inline void Line::clear_price() {
  price_.ClearToEmpty();
}
inline const std::string& Line::price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Line.price)
  return _internal_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Line::set_price(ArgT0&& arg0, ArgT... args) {
 
 price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Line.price)
}
inline std::string* Line::mutable_price() {
  std::string* _s = _internal_mutable_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Line.price)
  return _s;
}
inline const std::string& Line::_internal_price() const {
  return price_.Get();
}
inline void Line::_internal_set_price(const std::string& value) {
  
  price_.Set(value, GetArenaForAllocation());
}
inline std::string* Line::_internal_mutable_price() {
  
  return price_.Mutable(GetArenaForAllocation());
}
inline std::string* Line::release_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Line.price)
  return price_.Release();
}
inline void Line::set_allocated_price(std::string* price) {
  if (price != nullptr) {
    
  } else {
    
  }
  price_.SetAllocated(price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (price_.IsDefault()) {
    price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Line.price)
}

// int64 timestamp = 2 [json_name = "timestamp"];
inline void Line::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t Line::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t Line::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Line.timestamp)
  return _internal_timestamp();
}
inline void Line::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void Line::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Line.timestamp)
}

// int64 volume = 3 [json_name = "volume"];
inline void Line::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t Line::_internal_volume() const {
  return volume_;
}
inline int64_t Line::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Line.volume)
  return _internal_volume();
}
inline void Line::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void Line::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Line.volume)
}

// string turnover = 4 [json_name = "turnover"];
inline void Line::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& Line::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Line.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Line::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Line.turnover)
}
inline std::string* Line::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Line.turnover)
  return _s;
}
inline const std::string& Line::_internal_turnover() const {
  return turnover_.Get();
}
inline void Line::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* Line::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* Line::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Line.turnover)
  return turnover_.Release();
}
inline void Line::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Line.turnover)
}

// string avg_price = 5 [json_name = "avgPrice"];
inline void Line::clear_avg_price() {
  avg_price_.ClearToEmpty();
}
inline const std::string& Line::avg_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Line.avg_price)
  return _internal_avg_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Line::set_avg_price(ArgT0&& arg0, ArgT... args) {
 
 avg_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Line.avg_price)
}
inline std::string* Line::mutable_avg_price() {
  std::string* _s = _internal_mutable_avg_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Line.avg_price)
  return _s;
}
inline const std::string& Line::_internal_avg_price() const {
  return avg_price_.Get();
}
inline void Line::_internal_set_avg_price(const std::string& value) {
  
  avg_price_.Set(value, GetArenaForAllocation());
}
inline std::string* Line::_internal_mutable_avg_price() {
  
  return avg_price_.Mutable(GetArenaForAllocation());
}
inline std::string* Line::release_avg_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Line.avg_price)
  return avg_price_.Release();
}
inline void Line::set_allocated_avg_price(std::string* avg_price) {
  if (avg_price != nullptr) {
    
  } else {
    
  }
  avg_price_.SetAllocated(avg_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (avg_price_.IsDefault()) {
    avg_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Line.avg_price)
}

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

// SecurityCandlestickRequest

// string symbol = 1 [json_name = "symbol"];
inline void SecurityCandlestickRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityCandlestickRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCandlestickRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickRequest.symbol)
}
inline std::string* SecurityCandlestickRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCandlestickRequest.symbol)
  return _s;
}
inline const std::string& SecurityCandlestickRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityCandlestickRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCandlestickRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCandlestickRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCandlestickRequest.symbol)
  return symbol_.Release();
}
inline void SecurityCandlestickRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCandlestickRequest.symbol)
}

// .longbridge.quote.v1.Period period = 2 [json_name = "period"];
inline void SecurityCandlestickRequest::clear_period() {
  period_ = 0;
}
inline ::longbridge::quote::v1::Period SecurityCandlestickRequest::_internal_period() const {
  return static_cast< ::longbridge::quote::v1::Period >(period_);
}
inline ::longbridge::quote::v1::Period SecurityCandlestickRequest::period() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickRequest.period)
  return _internal_period();
}
inline void SecurityCandlestickRequest::_internal_set_period(::longbridge::quote::v1::Period value) {
  
  period_ = value;
}
inline void SecurityCandlestickRequest::set_period(::longbridge::quote::v1::Period value) {
  _internal_set_period(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickRequest.period)
}

// int32 count = 3 [json_name = "count"];
inline void SecurityCandlestickRequest::clear_count() {
  count_ = 0;
}
inline int32_t SecurityCandlestickRequest::_internal_count() const {
  return count_;
}
inline int32_t SecurityCandlestickRequest::count() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickRequest.count)
  return _internal_count();
}
inline void SecurityCandlestickRequest::_internal_set_count(int32_t value) {
  
  count_ = value;
}
inline void SecurityCandlestickRequest::set_count(int32_t value) {
  _internal_set_count(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickRequest.count)
}

// .longbridge.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
inline void SecurityCandlestickRequest::clear_adjust_type() {
  adjust_type_ = 0;
}
inline ::longbridge::quote::v1::AdjustType SecurityCandlestickRequest::_internal_adjust_type() const {
  return static_cast< ::longbridge::quote::v1::AdjustType >(adjust_type_);
}
inline ::longbridge::quote::v1::AdjustType SecurityCandlestickRequest::adjust_type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickRequest.adjust_type)
  return _internal_adjust_type();
}
inline void SecurityCandlestickRequest::_internal_set_adjust_type(::longbridge::quote::v1::AdjustType value) {
  
  adjust_type_ = value;
}
inline void SecurityCandlestickRequest::set_adjust_type(::longbridge::quote::v1::AdjustType value) {
  _internal_set_adjust_type(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickRequest.adjust_type)
}

// int32 trade_session = 5 [json_name = "tradeSession"];
inline void SecurityCandlestickRequest::clear_trade_session() {
  trade_session_ = 0;
}
inline int32_t SecurityCandlestickRequest::_internal_trade_session() const {
  return trade_session_;
}
inline int32_t SecurityCandlestickRequest::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickRequest.trade_session)
  return _internal_trade_session();
}
inline void SecurityCandlestickRequest::_internal_set_trade_session(int32_t value) {
  
  trade_session_ = value;
}
inline void SecurityCandlestickRequest::set_trade_session(int32_t value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickRequest.trade_session)
}

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

// SecurityCandlestickResponse

// string symbol = 1 [json_name = "symbol"];
inline void SecurityCandlestickResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityCandlestickResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCandlestickResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCandlestickResponse.symbol)
}
inline std::string* SecurityCandlestickResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCandlestickResponse.symbol)
  return _s;
}
inline const std::string& SecurityCandlestickResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityCandlestickResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCandlestickResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCandlestickResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCandlestickResponse.symbol)
  return symbol_.Release();
}
inline void SecurityCandlestickResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCandlestickResponse.symbol)
}

// repeated .longbridge.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
inline int SecurityCandlestickResponse::_internal_candlesticks_size() const {
  return candlesticks_.size();
}
inline int SecurityCandlestickResponse::candlesticks_size() const {
  return _internal_candlesticks_size();
}
inline void SecurityCandlestickResponse::clear_candlesticks() {
  candlesticks_.Clear();
}
inline ::longbridge::quote::v1::Candlestick* SecurityCandlestickResponse::mutable_candlesticks(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCandlestickResponse.candlesticks)
  return candlesticks_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Candlestick >*
SecurityCandlestickResponse::mutable_candlesticks() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityCandlestickResponse.candlesticks)
  return &candlesticks_;
}
inline const ::longbridge::quote::v1::Candlestick& SecurityCandlestickResponse::_internal_candlesticks(int index) const {
  return candlesticks_.Get(index);
}
inline const ::longbridge::quote::v1::Candlestick& SecurityCandlestickResponse::candlesticks(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCandlestickResponse.candlesticks)
  return _internal_candlesticks(index);
}
inline ::longbridge::quote::v1::Candlestick* SecurityCandlestickResponse::_internal_add_candlesticks() {
  return candlesticks_.Add();
}
inline ::longbridge::quote::v1::Candlestick* SecurityCandlestickResponse::add_candlesticks() {
  ::longbridge::quote::v1::Candlestick* _add = _internal_add_candlesticks();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityCandlestickResponse.candlesticks)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Candlestick >&
SecurityCandlestickResponse::candlesticks() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityCandlestickResponse.candlesticks)
  return candlesticks_;
}

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

// Candlestick

// string close = 1 [json_name = "close"];
inline void Candlestick::clear_close() {
  close_.ClearToEmpty();
}
inline const std::string& Candlestick::close() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.close)
  return _internal_close();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Candlestick::set_close(ArgT0&& arg0, ArgT... args) {
 
 close_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.close)
}
inline std::string* Candlestick::mutable_close() {
  std::string* _s = _internal_mutable_close();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Candlestick.close)
  return _s;
}
inline const std::string& Candlestick::_internal_close() const {
  return close_.Get();
}
inline void Candlestick::_internal_set_close(const std::string& value) {
  
  close_.Set(value, GetArenaForAllocation());
}
inline std::string* Candlestick::_internal_mutable_close() {
  
  return close_.Mutable(GetArenaForAllocation());
}
inline std::string* Candlestick::release_close() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Candlestick.close)
  return close_.Release();
}
inline void Candlestick::set_allocated_close(std::string* close) {
  if (close != nullptr) {
    
  } else {
    
  }
  close_.SetAllocated(close, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (close_.IsDefault()) {
    close_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Candlestick.close)
}

// string open = 2 [json_name = "open"];
inline void Candlestick::clear_open() {
  open_.ClearToEmpty();
}
inline const std::string& Candlestick::open() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.open)
  return _internal_open();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Candlestick::set_open(ArgT0&& arg0, ArgT... args) {
 
 open_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.open)
}
inline std::string* Candlestick::mutable_open() {
  std::string* _s = _internal_mutable_open();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Candlestick.open)
  return _s;
}
inline const std::string& Candlestick::_internal_open() const {
  return open_.Get();
}
inline void Candlestick::_internal_set_open(const std::string& value) {
  
  open_.Set(value, GetArenaForAllocation());
}
inline std::string* Candlestick::_internal_mutable_open() {
  
  return open_.Mutable(GetArenaForAllocation());
}
inline std::string* Candlestick::release_open() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Candlestick.open)
  return open_.Release();
}
inline void Candlestick::set_allocated_open(std::string* open) {
  if (open != nullptr) {
    
  } else {
    
  }
  open_.SetAllocated(open, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (open_.IsDefault()) {
    open_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Candlestick.open)
}

// string low = 3 [json_name = "low"];
inline void Candlestick::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& Candlestick::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Candlestick::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.low)
}
inline std::string* Candlestick::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Candlestick.low)
  return _s;
}
inline const std::string& Candlestick::_internal_low() const {
  return low_.Get();
}
inline void Candlestick::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* Candlestick::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* Candlestick::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Candlestick.low)
  return low_.Release();
}
inline void Candlestick::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Candlestick.low)
}

// string high = 4 [json_name = "high"];
inline void Candlestick::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& Candlestick::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Candlestick::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.high)
}
inline std::string* Candlestick::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Candlestick.high)
  return _s;
}
inline const std::string& Candlestick::_internal_high() const {
  return high_.Get();
}
inline void Candlestick::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* Candlestick::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* Candlestick::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Candlestick.high)
  return high_.Release();
}
inline void Candlestick::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Candlestick.high)
}

// int64 volume = 5 [json_name = "volume"];
inline void Candlestick::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t Candlestick::_internal_volume() const {
  return volume_;
}
inline int64_t Candlestick::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.volume)
  return _internal_volume();
}
inline void Candlestick::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void Candlestick::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.volume)
}

// string turnover = 6 [json_name = "turnover"];
inline void Candlestick::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& Candlestick::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Candlestick::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.turnover)
}
inline std::string* Candlestick::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.Candlestick.turnover)
  return _s;
}
inline const std::string& Candlestick::_internal_turnover() const {
  return turnover_.Get();
}
inline void Candlestick::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* Candlestick::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* Candlestick::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.Candlestick.turnover)
  return turnover_.Release();
}
inline void Candlestick::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.Candlestick.turnover)
}

// int64 timestamp = 7 [json_name = "timestamp"];
inline void Candlestick::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t Candlestick::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t Candlestick::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.timestamp)
  return _internal_timestamp();
}
inline void Candlestick::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void Candlestick::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.timestamp)
}

// .longbridge.quote.v1.TradeSession trade_session = 8 [json_name = "tradeSession"];
inline void Candlestick::clear_trade_session() {
  trade_session_ = 0;
}
inline ::longbridge::quote::v1::TradeSession Candlestick::_internal_trade_session() const {
  return static_cast< ::longbridge::quote::v1::TradeSession >(trade_session_);
}
inline ::longbridge::quote::v1::TradeSession Candlestick::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.Candlestick.trade_session)
  return _internal_trade_session();
}
inline void Candlestick::_internal_set_trade_session(::longbridge::quote::v1::TradeSession value) {
  
  trade_session_ = value;
}
inline void Candlestick::set_trade_session(::longbridge::quote::v1::TradeSession value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.Candlestick.trade_session)
}

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

// OptionChainDateListResponse

// repeated string expiry_date = 1 [json_name = "expiryDate"];
inline int OptionChainDateListResponse::_internal_expiry_date_size() const {
  return expiry_date_.size();
}
inline int OptionChainDateListResponse::expiry_date_size() const {
  return _internal_expiry_date_size();
}
inline void OptionChainDateListResponse::clear_expiry_date() {
  expiry_date_.Clear();
}
inline std::string* OptionChainDateListResponse::add_expiry_date() {
  std::string* _s = _internal_add_expiry_date();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
  return _s;
}
inline const std::string& OptionChainDateListResponse::_internal_expiry_date(int index) const {
  return expiry_date_.Get(index);
}
inline const std::string& OptionChainDateListResponse::expiry_date(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
  return _internal_expiry_date(index);
}
inline std::string* OptionChainDateListResponse::mutable_expiry_date(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
  return expiry_date_.Mutable(index);
}
inline void OptionChainDateListResponse::set_expiry_date(int index, const std::string& value) {
  expiry_date_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::set_expiry_date(int index, std::string&& value) {
  expiry_date_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::set_expiry_date(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  expiry_date_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::set_expiry_date(int index, const char* value, size_t size) {
  expiry_date_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline std::string* OptionChainDateListResponse::_internal_add_expiry_date() {
  return expiry_date_.Add();
}
inline void OptionChainDateListResponse::add_expiry_date(const std::string& value) {
  expiry_date_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::add_expiry_date(std::string&& value) {
  expiry_date_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::add_expiry_date(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  expiry_date_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline void OptionChainDateListResponse::add_expiry_date(const char* value, size_t size) {
  expiry_date_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
OptionChainDateListResponse::expiry_date() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
  return expiry_date_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
OptionChainDateListResponse::mutable_expiry_date() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.OptionChainDateListResponse.expiry_date)
  return &expiry_date_;
}

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

// OptionChainDateStrikeInfoRequest

// string symbol = 1 [json_name = "symbol"];
inline void OptionChainDateStrikeInfoRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& OptionChainDateStrikeInfoRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionChainDateStrikeInfoRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol)
}
inline std::string* OptionChainDateStrikeInfoRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol)
  return _s;
}
inline const std::string& OptionChainDateStrikeInfoRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void OptionChainDateStrikeInfoRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionChainDateStrikeInfoRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionChainDateStrikeInfoRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol)
  return symbol_.Release();
}
inline void OptionChainDateStrikeInfoRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol)
}

// string expiry_date = 2 [json_name = "expiryDate"];
inline void OptionChainDateStrikeInfoRequest::clear_expiry_date() {
  expiry_date_.ClearToEmpty();
}
inline const std::string& OptionChainDateStrikeInfoRequest::expiry_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date)
  return _internal_expiry_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void OptionChainDateStrikeInfoRequest::set_expiry_date(ArgT0&& arg0, ArgT... args) {
 
 expiry_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date)
}
inline std::string* OptionChainDateStrikeInfoRequest::mutable_expiry_date() {
  std::string* _s = _internal_mutable_expiry_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date)
  return _s;
}
inline const std::string& OptionChainDateStrikeInfoRequest::_internal_expiry_date() const {
  return expiry_date_.Get();
}
inline void OptionChainDateStrikeInfoRequest::_internal_set_expiry_date(const std::string& value) {
  
  expiry_date_.Set(value, GetArenaForAllocation());
}
inline std::string* OptionChainDateStrikeInfoRequest::_internal_mutable_expiry_date() {
  
  return expiry_date_.Mutable(GetArenaForAllocation());
}
inline std::string* OptionChainDateStrikeInfoRequest::release_expiry_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date)
  return expiry_date_.Release();
}
inline void OptionChainDateStrikeInfoRequest::set_allocated_expiry_date(std::string* expiry_date) {
  if (expiry_date != nullptr) {
    
  } else {
    
  }
  expiry_date_.SetAllocated(expiry_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (expiry_date_.IsDefault()) {
    expiry_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date)
}

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

// OptionChainDateStrikeInfoResponse

// repeated .longbridge.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
inline int OptionChainDateStrikeInfoResponse::_internal_strike_price_info_size() const {
  return strike_price_info_.size();
}
inline int OptionChainDateStrikeInfoResponse::strike_price_info_size() const {
  return _internal_strike_price_info_size();
}
inline void OptionChainDateStrikeInfoResponse::clear_strike_price_info() {
  strike_price_info_.Clear();
}
inline ::longbridge::quote::v1::StrikePriceInfo* OptionChainDateStrikeInfoResponse::mutable_strike_price_info(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info)
  return strike_price_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StrikePriceInfo >*
OptionChainDateStrikeInfoResponse::mutable_strike_price_info() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info)
  return &strike_price_info_;
}
inline const ::longbridge::quote::v1::StrikePriceInfo& OptionChainDateStrikeInfoResponse::_internal_strike_price_info(int index) const {
  return strike_price_info_.Get(index);
}
inline const ::longbridge::quote::v1::StrikePriceInfo& OptionChainDateStrikeInfoResponse::strike_price_info(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info)
  return _internal_strike_price_info(index);
}
inline ::longbridge::quote::v1::StrikePriceInfo* OptionChainDateStrikeInfoResponse::_internal_add_strike_price_info() {
  return strike_price_info_.Add();
}
inline ::longbridge::quote::v1::StrikePriceInfo* OptionChainDateStrikeInfoResponse::add_strike_price_info() {
  ::longbridge::quote::v1::StrikePriceInfo* _add = _internal_add_strike_price_info();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::StrikePriceInfo >&
OptionChainDateStrikeInfoResponse::strike_price_info() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info)
  return strike_price_info_;
}

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

// StrikePriceInfo

// string price = 1 [json_name = "price"];
inline void StrikePriceInfo::clear_price() {
  price_.ClearToEmpty();
}
inline const std::string& StrikePriceInfo::price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StrikePriceInfo.price)
  return _internal_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StrikePriceInfo::set_price(ArgT0&& arg0, ArgT... args) {
 
 price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StrikePriceInfo.price)
}
inline std::string* StrikePriceInfo::mutable_price() {
  std::string* _s = _internal_mutable_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StrikePriceInfo.price)
  return _s;
}
inline const std::string& StrikePriceInfo::_internal_price() const {
  return price_.Get();
}
inline void StrikePriceInfo::_internal_set_price(const std::string& value) {
  
  price_.Set(value, GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::_internal_mutable_price() {
  
  return price_.Mutable(GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::release_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StrikePriceInfo.price)
  return price_.Release();
}
inline void StrikePriceInfo::set_allocated_price(std::string* price) {
  if (price != nullptr) {
    
  } else {
    
  }
  price_.SetAllocated(price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (price_.IsDefault()) {
    price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StrikePriceInfo.price)
}

// string call_symbol = 2 [json_name = "callSymbol"];
inline void StrikePriceInfo::clear_call_symbol() {
  call_symbol_.ClearToEmpty();
}
inline const std::string& StrikePriceInfo::call_symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StrikePriceInfo.call_symbol)
  return _internal_call_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StrikePriceInfo::set_call_symbol(ArgT0&& arg0, ArgT... args) {
 
 call_symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StrikePriceInfo.call_symbol)
}
inline std::string* StrikePriceInfo::mutable_call_symbol() {
  std::string* _s = _internal_mutable_call_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StrikePriceInfo.call_symbol)
  return _s;
}
inline const std::string& StrikePriceInfo::_internal_call_symbol() const {
  return call_symbol_.Get();
}
inline void StrikePriceInfo::_internal_set_call_symbol(const std::string& value) {
  
  call_symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::_internal_mutable_call_symbol() {
  
  return call_symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::release_call_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StrikePriceInfo.call_symbol)
  return call_symbol_.Release();
}
inline void StrikePriceInfo::set_allocated_call_symbol(std::string* call_symbol) {
  if (call_symbol != nullptr) {
    
  } else {
    
  }
  call_symbol_.SetAllocated(call_symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (call_symbol_.IsDefault()) {
    call_symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StrikePriceInfo.call_symbol)
}

// string put_symbol = 3 [json_name = "putSymbol"];
inline void StrikePriceInfo::clear_put_symbol() {
  put_symbol_.ClearToEmpty();
}
inline const std::string& StrikePriceInfo::put_symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StrikePriceInfo.put_symbol)
  return _internal_put_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void StrikePriceInfo::set_put_symbol(ArgT0&& arg0, ArgT... args) {
 
 put_symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StrikePriceInfo.put_symbol)
}
inline std::string* StrikePriceInfo::mutable_put_symbol() {
  std::string* _s = _internal_mutable_put_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.StrikePriceInfo.put_symbol)
  return _s;
}
inline const std::string& StrikePriceInfo::_internal_put_symbol() const {
  return put_symbol_.Get();
}
inline void StrikePriceInfo::_internal_set_put_symbol(const std::string& value) {
  
  put_symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::_internal_mutable_put_symbol() {
  
  return put_symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* StrikePriceInfo::release_put_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.StrikePriceInfo.put_symbol)
  return put_symbol_.Release();
}
inline void StrikePriceInfo::set_allocated_put_symbol(std::string* put_symbol) {
  if (put_symbol != nullptr) {
    
  } else {
    
  }
  put_symbol_.SetAllocated(put_symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (put_symbol_.IsDefault()) {
    put_symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.StrikePriceInfo.put_symbol)
}

// bool standard = 4 [json_name = "standard"];
inline void StrikePriceInfo::clear_standard() {
  standard_ = false;
}
inline bool StrikePriceInfo::_internal_standard() const {
  return standard_;
}
inline bool StrikePriceInfo::standard() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.StrikePriceInfo.standard)
  return _internal_standard();
}
inline void StrikePriceInfo::_internal_set_standard(bool value) {
  
  standard_ = value;
}
inline void StrikePriceInfo::set_standard(bool value) {
  _internal_set_standard(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.StrikePriceInfo.standard)
}

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

// IssuerInfoResponse

// repeated .longbridge.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
inline int IssuerInfoResponse::_internal_issuer_info_size() const {
  return issuer_info_.size();
}
inline int IssuerInfoResponse::issuer_info_size() const {
  return _internal_issuer_info_size();
}
inline void IssuerInfoResponse::clear_issuer_info() {
  issuer_info_.Clear();
}
inline ::longbridge::quote::v1::IssuerInfo* IssuerInfoResponse::mutable_issuer_info(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.IssuerInfoResponse.issuer_info)
  return issuer_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::IssuerInfo >*
IssuerInfoResponse::mutable_issuer_info() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.IssuerInfoResponse.issuer_info)
  return &issuer_info_;
}
inline const ::longbridge::quote::v1::IssuerInfo& IssuerInfoResponse::_internal_issuer_info(int index) const {
  return issuer_info_.Get(index);
}
inline const ::longbridge::quote::v1::IssuerInfo& IssuerInfoResponse::issuer_info(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.IssuerInfoResponse.issuer_info)
  return _internal_issuer_info(index);
}
inline ::longbridge::quote::v1::IssuerInfo* IssuerInfoResponse::_internal_add_issuer_info() {
  return issuer_info_.Add();
}
inline ::longbridge::quote::v1::IssuerInfo* IssuerInfoResponse::add_issuer_info() {
  ::longbridge::quote::v1::IssuerInfo* _add = _internal_add_issuer_info();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.IssuerInfoResponse.issuer_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::IssuerInfo >&
IssuerInfoResponse::issuer_info() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.IssuerInfoResponse.issuer_info)
  return issuer_info_;
}

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

// IssuerInfo

// int32 id = 1 [json_name = "id"];
inline void IssuerInfo::clear_id() {
  id_ = 0;
}
inline int32_t IssuerInfo::_internal_id() const {
  return id_;
}
inline int32_t IssuerInfo::id() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.IssuerInfo.id)
  return _internal_id();
}
inline void IssuerInfo::_internal_set_id(int32_t value) {
  
  id_ = value;
}
inline void IssuerInfo::set_id(int32_t value) {
  _internal_set_id(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.IssuerInfo.id)
}

// string name_cn = 2 [json_name = "nameCn"];
inline void IssuerInfo::clear_name_cn() {
  name_cn_.ClearToEmpty();
}
inline const std::string& IssuerInfo::name_cn() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.IssuerInfo.name_cn)
  return _internal_name_cn();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void IssuerInfo::set_name_cn(ArgT0&& arg0, ArgT... args) {
 
 name_cn_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.IssuerInfo.name_cn)
}
inline std::string* IssuerInfo::mutable_name_cn() {
  std::string* _s = _internal_mutable_name_cn();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.IssuerInfo.name_cn)
  return _s;
}
inline const std::string& IssuerInfo::_internal_name_cn() const {
  return name_cn_.Get();
}
inline void IssuerInfo::_internal_set_name_cn(const std::string& value) {
  
  name_cn_.Set(value, GetArenaForAllocation());
}
inline std::string* IssuerInfo::_internal_mutable_name_cn() {
  
  return name_cn_.Mutable(GetArenaForAllocation());
}
inline std::string* IssuerInfo::release_name_cn() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.IssuerInfo.name_cn)
  return name_cn_.Release();
}
inline void IssuerInfo::set_allocated_name_cn(std::string* name_cn) {
  if (name_cn != nullptr) {
    
  } else {
    
  }
  name_cn_.SetAllocated(name_cn, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_cn_.IsDefault()) {
    name_cn_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.IssuerInfo.name_cn)
}

// string name_en = 3 [json_name = "nameEn"];
inline void IssuerInfo::clear_name_en() {
  name_en_.ClearToEmpty();
}
inline const std::string& IssuerInfo::name_en() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.IssuerInfo.name_en)
  return _internal_name_en();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void IssuerInfo::set_name_en(ArgT0&& arg0, ArgT... args) {
 
 name_en_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.IssuerInfo.name_en)
}
inline std::string* IssuerInfo::mutable_name_en() {
  std::string* _s = _internal_mutable_name_en();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.IssuerInfo.name_en)
  return _s;
}
inline const std::string& IssuerInfo::_internal_name_en() const {
  return name_en_.Get();
}
inline void IssuerInfo::_internal_set_name_en(const std::string& value) {
  
  name_en_.Set(value, GetArenaForAllocation());
}
inline std::string* IssuerInfo::_internal_mutable_name_en() {
  
  return name_en_.Mutable(GetArenaForAllocation());
}
inline std::string* IssuerInfo::release_name_en() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.IssuerInfo.name_en)
  return name_en_.Release();
}
inline void IssuerInfo::set_allocated_name_en(std::string* name_en) {
  if (name_en != nullptr) {
    
  } else {
    
  }
  name_en_.SetAllocated(name_en, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_en_.IsDefault()) {
    name_en_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.IssuerInfo.name_en)
}

// string name_hk = 4 [json_name = "nameHk"];
inline void IssuerInfo::clear_name_hk() {
  name_hk_.ClearToEmpty();
}
inline const std::string& IssuerInfo::name_hk() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.IssuerInfo.name_hk)
  return _internal_name_hk();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void IssuerInfo::set_name_hk(ArgT0&& arg0, ArgT... args) {
 
 name_hk_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.IssuerInfo.name_hk)
}
inline std::string* IssuerInfo::mutable_name_hk() {
  std::string* _s = _internal_mutable_name_hk();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.IssuerInfo.name_hk)
  return _s;
}
inline const std::string& IssuerInfo::_internal_name_hk() const {
  return name_hk_.Get();
}
inline void IssuerInfo::_internal_set_name_hk(const std::string& value) {
  
  name_hk_.Set(value, GetArenaForAllocation());
}
inline std::string* IssuerInfo::_internal_mutable_name_hk() {
  
  return name_hk_.Mutable(GetArenaForAllocation());
}
inline std::string* IssuerInfo::release_name_hk() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.IssuerInfo.name_hk)
  return name_hk_.Release();
}
inline void IssuerInfo::set_allocated_name_hk(std::string* name_hk) {
  if (name_hk != nullptr) {
    
  } else {
    
  }
  name_hk_.SetAllocated(name_hk, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_hk_.IsDefault()) {
    name_hk_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.IssuerInfo.name_hk)
}

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

// WarrantFilterListRequest

// string symbol = 1 [json_name = "symbol"];
inline void WarrantFilterListRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& WarrantFilterListRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantFilterListRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WarrantFilterListRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantFilterListRequest.symbol)
}
inline std::string* WarrantFilterListRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantFilterListRequest.symbol)
  return _s;
}
inline const std::string& WarrantFilterListRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void WarrantFilterListRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* WarrantFilterListRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* WarrantFilterListRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantFilterListRequest.symbol)
  return symbol_.Release();
}
inline void WarrantFilterListRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantFilterListRequest.symbol)
}

// .longbridge.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
inline bool WarrantFilterListRequest::_internal_has_filter_config() const {
  return this != internal_default_instance() && filter_config_ != nullptr;
}
inline bool WarrantFilterListRequest::has_filter_config() const {
  return _internal_has_filter_config();
}
inline void WarrantFilterListRequest::clear_filter_config() {
  if (GetArenaForAllocation() == nullptr && filter_config_ != nullptr) {
    delete filter_config_;
  }
  filter_config_ = nullptr;
}
inline const ::longbridge::quote::v1::FilterConfig& WarrantFilterListRequest::_internal_filter_config() const {
  const ::longbridge::quote::v1::FilterConfig* p = filter_config_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::FilterConfig&>(
      ::longbridge::quote::v1::_FilterConfig_default_instance_);
}
inline const ::longbridge::quote::v1::FilterConfig& WarrantFilterListRequest::filter_config() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantFilterListRequest.filter_config)
  return _internal_filter_config();
}
inline void WarrantFilterListRequest::unsafe_arena_set_allocated_filter_config(
    ::longbridge::quote::v1::FilterConfig* filter_config) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(filter_config_);
  }
  filter_config_ = filter_config;
  if (filter_config) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.WarrantFilterListRequest.filter_config)
}
inline ::longbridge::quote::v1::FilterConfig* WarrantFilterListRequest::release_filter_config() {
  
  ::longbridge::quote::v1::FilterConfig* temp = filter_config_;
  filter_config_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::FilterConfig* WarrantFilterListRequest::unsafe_arena_release_filter_config() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.WarrantFilterListRequest.filter_config)
  
  ::longbridge::quote::v1::FilterConfig* temp = filter_config_;
  filter_config_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::FilterConfig* WarrantFilterListRequest::_internal_mutable_filter_config() {
  
  if (filter_config_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::FilterConfig>(GetArenaForAllocation());
    filter_config_ = p;
  }
  return filter_config_;
}
inline ::longbridge::quote::v1::FilterConfig* WarrantFilterListRequest::mutable_filter_config() {
  ::longbridge::quote::v1::FilterConfig* _msg = _internal_mutable_filter_config();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantFilterListRequest.filter_config)
  return _msg;
}
inline void WarrantFilterListRequest::set_allocated_filter_config(::longbridge::quote::v1::FilterConfig* filter_config) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete filter_config_;
  }
  if (filter_config) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter_config);
    if (message_arena != submessage_arena) {
      filter_config = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter_config, submessage_arena);
    }
    
  } else {
    
  }
  filter_config_ = filter_config;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.WarrantFilterListRequest.filter_config)
}

// int32 language = 3 [json_name = "language"];
inline void WarrantFilterListRequest::clear_language() {
  language_ = 0;
}
inline int32_t WarrantFilterListRequest::_internal_language() const {
  return language_;
}
inline int32_t WarrantFilterListRequest::language() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantFilterListRequest.language)
  return _internal_language();
}
inline void WarrantFilterListRequest::_internal_set_language(int32_t value) {
  
  language_ = value;
}
inline void WarrantFilterListRequest::set_language(int32_t value) {
  _internal_set_language(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantFilterListRequest.language)
}

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

// FilterConfig

// int32 sort_by = 1 [json_name = "sortBy"];
inline void FilterConfig::clear_sort_by() {
  sort_by_ = 0;
}
inline int32_t FilterConfig::_internal_sort_by() const {
  return sort_by_;
}
inline int32_t FilterConfig::sort_by() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.sort_by)
  return _internal_sort_by();
}
inline void FilterConfig::_internal_set_sort_by(int32_t value) {
  
  sort_by_ = value;
}
inline void FilterConfig::set_sort_by(int32_t value) {
  _internal_set_sort_by(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.sort_by)
}

// int32 sort_order = 2 [json_name = "sortOrder"];
inline void FilterConfig::clear_sort_order() {
  sort_order_ = 0;
}
inline int32_t FilterConfig::_internal_sort_order() const {
  return sort_order_;
}
inline int32_t FilterConfig::sort_order() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.sort_order)
  return _internal_sort_order();
}
inline void FilterConfig::_internal_set_sort_order(int32_t value) {
  
  sort_order_ = value;
}
inline void FilterConfig::set_sort_order(int32_t value) {
  _internal_set_sort_order(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.sort_order)
}

// int32 sort_offset = 3 [json_name = "sortOffset"];
inline void FilterConfig::clear_sort_offset() {
  sort_offset_ = 0;
}
inline int32_t FilterConfig::_internal_sort_offset() const {
  return sort_offset_;
}
inline int32_t FilterConfig::sort_offset() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.sort_offset)
  return _internal_sort_offset();
}
inline void FilterConfig::_internal_set_sort_offset(int32_t value) {
  
  sort_offset_ = value;
}
inline void FilterConfig::set_sort_offset(int32_t value) {
  _internal_set_sort_offset(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.sort_offset)
}

// int32 sort_count = 4 [json_name = "sortCount"];
inline void FilterConfig::clear_sort_count() {
  sort_count_ = 0;
}
inline int32_t FilterConfig::_internal_sort_count() const {
  return sort_count_;
}
inline int32_t FilterConfig::sort_count() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.sort_count)
  return _internal_sort_count();
}
inline void FilterConfig::_internal_set_sort_count(int32_t value) {
  
  sort_count_ = value;
}
inline void FilterConfig::set_sort_count(int32_t value) {
  _internal_set_sort_count(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.sort_count)
}

// repeated int32 type = 5 [json_name = "type"];
inline int FilterConfig::_internal_type_size() const {
  return type_.size();
}
inline int FilterConfig::type_size() const {
  return _internal_type_size();
}
inline void FilterConfig::clear_type() {
  type_.Clear();
}
inline int32_t FilterConfig::_internal_type(int index) const {
  return type_.Get(index);
}
inline int32_t FilterConfig::type(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.type)
  return _internal_type(index);
}
inline void FilterConfig::set_type(int index, int32_t value) {
  type_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.type)
}
inline void FilterConfig::_internal_add_type(int32_t value) {
  type_.Add(value);
}
inline void FilterConfig::add_type(int32_t value) {
  _internal_add_type(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.FilterConfig.type)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::_internal_type() const {
  return type_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::type() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.FilterConfig.type)
  return _internal_type();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::_internal_mutable_type() {
  return &type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::mutable_type() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.FilterConfig.type)
  return _internal_mutable_type();
}

// repeated int32 issuer = 6 [json_name = "issuer"];
inline int FilterConfig::_internal_issuer_size() const {
  return issuer_.size();
}
inline int FilterConfig::issuer_size() const {
  return _internal_issuer_size();
}
inline void FilterConfig::clear_issuer() {
  issuer_.Clear();
}
inline int32_t FilterConfig::_internal_issuer(int index) const {
  return issuer_.Get(index);
}
inline int32_t FilterConfig::issuer(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.issuer)
  return _internal_issuer(index);
}
inline void FilterConfig::set_issuer(int index, int32_t value) {
  issuer_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.issuer)
}
inline void FilterConfig::_internal_add_issuer(int32_t value) {
  issuer_.Add(value);
}
inline void FilterConfig::add_issuer(int32_t value) {
  _internal_add_issuer(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.FilterConfig.issuer)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::_internal_issuer() const {
  return issuer_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::issuer() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.FilterConfig.issuer)
  return _internal_issuer();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::_internal_mutable_issuer() {
  return &issuer_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::mutable_issuer() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.FilterConfig.issuer)
  return _internal_mutable_issuer();
}

// repeated int32 expiry_date = 7 [json_name = "expiryDate"];
inline int FilterConfig::_internal_expiry_date_size() const {
  return expiry_date_.size();
}
inline int FilterConfig::expiry_date_size() const {
  return _internal_expiry_date_size();
}
inline void FilterConfig::clear_expiry_date() {
  expiry_date_.Clear();
}
inline int32_t FilterConfig::_internal_expiry_date(int index) const {
  return expiry_date_.Get(index);
}
inline int32_t FilterConfig::expiry_date(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.expiry_date)
  return _internal_expiry_date(index);
}
inline void FilterConfig::set_expiry_date(int index, int32_t value) {
  expiry_date_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.expiry_date)
}
inline void FilterConfig::_internal_add_expiry_date(int32_t value) {
  expiry_date_.Add(value);
}
inline void FilterConfig::add_expiry_date(int32_t value) {
  _internal_add_expiry_date(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.FilterConfig.expiry_date)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::_internal_expiry_date() const {
  return expiry_date_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::expiry_date() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.FilterConfig.expiry_date)
  return _internal_expiry_date();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::_internal_mutable_expiry_date() {
  return &expiry_date_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::mutable_expiry_date() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.FilterConfig.expiry_date)
  return _internal_mutable_expiry_date();
}

// repeated int32 price_type = 8 [json_name = "priceType"];
inline int FilterConfig::_internal_price_type_size() const {
  return price_type_.size();
}
inline int FilterConfig::price_type_size() const {
  return _internal_price_type_size();
}
inline void FilterConfig::clear_price_type() {
  price_type_.Clear();
}
inline int32_t FilterConfig::_internal_price_type(int index) const {
  return price_type_.Get(index);
}
inline int32_t FilterConfig::price_type(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.price_type)
  return _internal_price_type(index);
}
inline void FilterConfig::set_price_type(int index, int32_t value) {
  price_type_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.price_type)
}
inline void FilterConfig::_internal_add_price_type(int32_t value) {
  price_type_.Add(value);
}
inline void FilterConfig::add_price_type(int32_t value) {
  _internal_add_price_type(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.FilterConfig.price_type)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::_internal_price_type() const {
  return price_type_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::price_type() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.FilterConfig.price_type)
  return _internal_price_type();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::_internal_mutable_price_type() {
  return &price_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::mutable_price_type() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.FilterConfig.price_type)
  return _internal_mutable_price_type();
}

// repeated int32 status = 9 [json_name = "status"];
inline int FilterConfig::_internal_status_size() const {
  return status_.size();
}
inline int FilterConfig::status_size() const {
  return _internal_status_size();
}
inline void FilterConfig::clear_status() {
  status_.Clear();
}
inline int32_t FilterConfig::_internal_status(int index) const {
  return status_.Get(index);
}
inline int32_t FilterConfig::status(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterConfig.status)
  return _internal_status(index);
}
inline void FilterConfig::set_status(int index, int32_t value) {
  status_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterConfig.status)
}
inline void FilterConfig::_internal_add_status(int32_t value) {
  status_.Add(value);
}
inline void FilterConfig::add_status(int32_t value) {
  _internal_add_status(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.FilterConfig.status)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::_internal_status() const {
  return status_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
FilterConfig::status() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.FilterConfig.status)
  return _internal_status();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::_internal_mutable_status() {
  return &status_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
FilterConfig::mutable_status() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.FilterConfig.status)
  return _internal_mutable_status();
}

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

// WarrantFilterListResponse

// repeated .longbridge.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
inline int WarrantFilterListResponse::_internal_warrant_list_size() const {
  return warrant_list_.size();
}
inline int WarrantFilterListResponse::warrant_list_size() const {
  return _internal_warrant_list_size();
}
inline void WarrantFilterListResponse::clear_warrant_list() {
  warrant_list_.Clear();
}
inline ::longbridge::quote::v1::FilterWarrant* WarrantFilterListResponse::mutable_warrant_list(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.WarrantFilterListResponse.warrant_list)
  return warrant_list_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::FilterWarrant >*
WarrantFilterListResponse::mutable_warrant_list() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.WarrantFilterListResponse.warrant_list)
  return &warrant_list_;
}
inline const ::longbridge::quote::v1::FilterWarrant& WarrantFilterListResponse::_internal_warrant_list(int index) const {
  return warrant_list_.Get(index);
}
inline const ::longbridge::quote::v1::FilterWarrant& WarrantFilterListResponse::warrant_list(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantFilterListResponse.warrant_list)
  return _internal_warrant_list(index);
}
inline ::longbridge::quote::v1::FilterWarrant* WarrantFilterListResponse::_internal_add_warrant_list() {
  return warrant_list_.Add();
}
inline ::longbridge::quote::v1::FilterWarrant* WarrantFilterListResponse::add_warrant_list() {
  ::longbridge::quote::v1::FilterWarrant* _add = _internal_add_warrant_list();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.WarrantFilterListResponse.warrant_list)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::FilterWarrant >&
WarrantFilterListResponse::warrant_list() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.WarrantFilterListResponse.warrant_list)
  return warrant_list_;
}

// int32 total_count = 2 [json_name = "totalCount"];
inline void WarrantFilterListResponse::clear_total_count() {
  total_count_ = 0;
}
inline int32_t WarrantFilterListResponse::_internal_total_count() const {
  return total_count_;
}
inline int32_t WarrantFilterListResponse::total_count() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.WarrantFilterListResponse.total_count)
  return _internal_total_count();
}
inline void WarrantFilterListResponse::_internal_set_total_count(int32_t value) {
  
  total_count_ = value;
}
inline void WarrantFilterListResponse::set_total_count(int32_t value) {
  _internal_set_total_count(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.WarrantFilterListResponse.total_count)
}

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

// FilterWarrant

// string symbol = 1 [json_name = "symbol"];
inline void FilterWarrant::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& FilterWarrant::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.symbol)
}
inline std::string* FilterWarrant::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.symbol)
  return _s;
}
inline const std::string& FilterWarrant::_internal_symbol() const {
  return symbol_.Get();
}
inline void FilterWarrant::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.symbol)
  return symbol_.Release();
}
inline void FilterWarrant::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.symbol)
}

// string name = 2 [json_name = "name"];
inline void FilterWarrant::clear_name() {
  name_.ClearToEmpty();
}
inline const std::string& FilterWarrant::name() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_name(ArgT0&& arg0, ArgT... args) {
 
 name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.name)
}
inline std::string* FilterWarrant::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.name)
  return _s;
}
inline const std::string& FilterWarrant::_internal_name() const {
  return name_.Get();
}
inline void FilterWarrant::_internal_set_name(const std::string& value) {
  
  name_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_name() {
  
  return name_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_name() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.name)
  return name_.Release();
}
inline void FilterWarrant::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_.IsDefault()) {
    name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.name)
}

// string last_done = 3 [json_name = "lastDone"];
inline void FilterWarrant::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& FilterWarrant::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.last_done)
}
inline std::string* FilterWarrant::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.last_done)
  return _s;
}
inline const std::string& FilterWarrant::_internal_last_done() const {
  return last_done_.Get();
}
inline void FilterWarrant::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.last_done)
  return last_done_.Release();
}
inline void FilterWarrant::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.last_done)
}

// string change_rate = 4 [json_name = "changeRate"];
inline void FilterWarrant::clear_change_rate() {
  change_rate_.ClearToEmpty();
}
inline const std::string& FilterWarrant::change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.change_rate)
  return _internal_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_change_rate(ArgT0&& arg0, ArgT... args) {
 
 change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.change_rate)
}
inline std::string* FilterWarrant::mutable_change_rate() {
  std::string* _s = _internal_mutable_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.change_rate)
  return _s;
}
inline const std::string& FilterWarrant::_internal_change_rate() const {
  return change_rate_.Get();
}
inline void FilterWarrant::_internal_set_change_rate(const std::string& value) {
  
  change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_change_rate() {
  
  return change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.change_rate)
  return change_rate_.Release();
}
inline void FilterWarrant::set_allocated_change_rate(std::string* change_rate) {
  if (change_rate != nullptr) {
    
  } else {
    
  }
  change_rate_.SetAllocated(change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (change_rate_.IsDefault()) {
    change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.change_rate)
}

// string change_val = 5 [json_name = "changeVal"];
inline void FilterWarrant::clear_change_val() {
  change_val_.ClearToEmpty();
}
inline const std::string& FilterWarrant::change_val() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.change_val)
  return _internal_change_val();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_change_val(ArgT0&& arg0, ArgT... args) {
 
 change_val_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.change_val)
}
inline std::string* FilterWarrant::mutable_change_val() {
  std::string* _s = _internal_mutable_change_val();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.change_val)
  return _s;
}
inline const std::string& FilterWarrant::_internal_change_val() const {
  return change_val_.Get();
}
inline void FilterWarrant::_internal_set_change_val(const std::string& value) {
  
  change_val_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_change_val() {
  
  return change_val_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_change_val() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.change_val)
  return change_val_.Release();
}
inline void FilterWarrant::set_allocated_change_val(std::string* change_val) {
  if (change_val != nullptr) {
    
  } else {
    
  }
  change_val_.SetAllocated(change_val, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (change_val_.IsDefault()) {
    change_val_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.change_val)
}

// int64 volume = 6 [json_name = "volume"];
inline void FilterWarrant::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t FilterWarrant::_internal_volume() const {
  return volume_;
}
inline int64_t FilterWarrant::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.volume)
  return _internal_volume();
}
inline void FilterWarrant::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void FilterWarrant::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.volume)
}

// string turnover = 7 [json_name = "turnover"];
inline void FilterWarrant::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& FilterWarrant::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.turnover)
}
inline std::string* FilterWarrant::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.turnover)
  return _s;
}
inline const std::string& FilterWarrant::_internal_turnover() const {
  return turnover_.Get();
}
inline void FilterWarrant::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.turnover)
  return turnover_.Release();
}
inline void FilterWarrant::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.turnover)
}

// string expiry_date = 8 [json_name = "expiryDate"];
inline void FilterWarrant::clear_expiry_date() {
  expiry_date_.ClearToEmpty();
}
inline const std::string& FilterWarrant::expiry_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.expiry_date)
  return _internal_expiry_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_expiry_date(ArgT0&& arg0, ArgT... args) {
 
 expiry_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.expiry_date)
}
inline std::string* FilterWarrant::mutable_expiry_date() {
  std::string* _s = _internal_mutable_expiry_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.expiry_date)
  return _s;
}
inline const std::string& FilterWarrant::_internal_expiry_date() const {
  return expiry_date_.Get();
}
inline void FilterWarrant::_internal_set_expiry_date(const std::string& value) {
  
  expiry_date_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_expiry_date() {
  
  return expiry_date_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_expiry_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.expiry_date)
  return expiry_date_.Release();
}
inline void FilterWarrant::set_allocated_expiry_date(std::string* expiry_date) {
  if (expiry_date != nullptr) {
    
  } else {
    
  }
  expiry_date_.SetAllocated(expiry_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (expiry_date_.IsDefault()) {
    expiry_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.expiry_date)
}

// string strike_price = 9 [json_name = "strikePrice"];
inline void FilterWarrant::clear_strike_price() {
  strike_price_.ClearToEmpty();
}
inline const std::string& FilterWarrant::strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.strike_price)
  return _internal_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_strike_price(ArgT0&& arg0, ArgT... args) {
 
 strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.strike_price)
}
inline std::string* FilterWarrant::mutable_strike_price() {
  std::string* _s = _internal_mutable_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.strike_price)
  return _s;
}
inline const std::string& FilterWarrant::_internal_strike_price() const {
  return strike_price_.Get();
}
inline void FilterWarrant::_internal_set_strike_price(const std::string& value) {
  
  strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_strike_price() {
  
  return strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.strike_price)
  return strike_price_.Release();
}
inline void FilterWarrant::set_allocated_strike_price(std::string* strike_price) {
  if (strike_price != nullptr) {
    
  } else {
    
  }
  strike_price_.SetAllocated(strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (strike_price_.IsDefault()) {
    strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.strike_price)
}

// string upper_strike_price = 10 [json_name = "upperStrikePrice"];
inline void FilterWarrant::clear_upper_strike_price() {
  upper_strike_price_.ClearToEmpty();
}
inline const std::string& FilterWarrant::upper_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.upper_strike_price)
  return _internal_upper_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_upper_strike_price(ArgT0&& arg0, ArgT... args) {
 
 upper_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.upper_strike_price)
}
inline std::string* FilterWarrant::mutable_upper_strike_price() {
  std::string* _s = _internal_mutable_upper_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.upper_strike_price)
  return _s;
}
inline const std::string& FilterWarrant::_internal_upper_strike_price() const {
  return upper_strike_price_.Get();
}
inline void FilterWarrant::_internal_set_upper_strike_price(const std::string& value) {
  
  upper_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_upper_strike_price() {
  
  return upper_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_upper_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.upper_strike_price)
  return upper_strike_price_.Release();
}
inline void FilterWarrant::set_allocated_upper_strike_price(std::string* upper_strike_price) {
  if (upper_strike_price != nullptr) {
    
  } else {
    
  }
  upper_strike_price_.SetAllocated(upper_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (upper_strike_price_.IsDefault()) {
    upper_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.upper_strike_price)
}

// string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
inline void FilterWarrant::clear_lower_strike_price() {
  lower_strike_price_.ClearToEmpty();
}
inline const std::string& FilterWarrant::lower_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.lower_strike_price)
  return _internal_lower_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_lower_strike_price(ArgT0&& arg0, ArgT... args) {
 
 lower_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.lower_strike_price)
}
inline std::string* FilterWarrant::mutable_lower_strike_price() {
  std::string* _s = _internal_mutable_lower_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.lower_strike_price)
  return _s;
}
inline const std::string& FilterWarrant::_internal_lower_strike_price() const {
  return lower_strike_price_.Get();
}
inline void FilterWarrant::_internal_set_lower_strike_price(const std::string& value) {
  
  lower_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_lower_strike_price() {
  
  return lower_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_lower_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.lower_strike_price)
  return lower_strike_price_.Release();
}
inline void FilterWarrant::set_allocated_lower_strike_price(std::string* lower_strike_price) {
  if (lower_strike_price != nullptr) {
    
  } else {
    
  }
  lower_strike_price_.SetAllocated(lower_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (lower_strike_price_.IsDefault()) {
    lower_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.lower_strike_price)
}

// string outstanding_qty = 12 [json_name = "outstandingQty"];
inline void FilterWarrant::clear_outstanding_qty() {
  outstanding_qty_.ClearToEmpty();
}
inline const std::string& FilterWarrant::outstanding_qty() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.outstanding_qty)
  return _internal_outstanding_qty();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_outstanding_qty(ArgT0&& arg0, ArgT... args) {
 
 outstanding_qty_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.outstanding_qty)
}
inline std::string* FilterWarrant::mutable_outstanding_qty() {
  std::string* _s = _internal_mutable_outstanding_qty();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.outstanding_qty)
  return _s;
}
inline const std::string& FilterWarrant::_internal_outstanding_qty() const {
  return outstanding_qty_.Get();
}
inline void FilterWarrant::_internal_set_outstanding_qty(const std::string& value) {
  
  outstanding_qty_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_outstanding_qty() {
  
  return outstanding_qty_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_outstanding_qty() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.outstanding_qty)
  return outstanding_qty_.Release();
}
inline void FilterWarrant::set_allocated_outstanding_qty(std::string* outstanding_qty) {
  if (outstanding_qty != nullptr) {
    
  } else {
    
  }
  outstanding_qty_.SetAllocated(outstanding_qty, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (outstanding_qty_.IsDefault()) {
    outstanding_qty_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.outstanding_qty)
}

// string outstanding_ratio = 13 [json_name = "outstandingRatio"];
inline void FilterWarrant::clear_outstanding_ratio() {
  outstanding_ratio_.ClearToEmpty();
}
inline const std::string& FilterWarrant::outstanding_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.outstanding_ratio)
  return _internal_outstanding_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_outstanding_ratio(ArgT0&& arg0, ArgT... args) {
 
 outstanding_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.outstanding_ratio)
}
inline std::string* FilterWarrant::mutable_outstanding_ratio() {
  std::string* _s = _internal_mutable_outstanding_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.outstanding_ratio)
  return _s;
}
inline const std::string& FilterWarrant::_internal_outstanding_ratio() const {
  return outstanding_ratio_.Get();
}
inline void FilterWarrant::_internal_set_outstanding_ratio(const std::string& value) {
  
  outstanding_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_outstanding_ratio() {
  
  return outstanding_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_outstanding_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.outstanding_ratio)
  return outstanding_ratio_.Release();
}
inline void FilterWarrant::set_allocated_outstanding_ratio(std::string* outstanding_ratio) {
  if (outstanding_ratio != nullptr) {
    
  } else {
    
  }
  outstanding_ratio_.SetAllocated(outstanding_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (outstanding_ratio_.IsDefault()) {
    outstanding_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.outstanding_ratio)
}

// string premium = 14 [json_name = "premium"];
inline void FilterWarrant::clear_premium() {
  premium_.ClearToEmpty();
}
inline const std::string& FilterWarrant::premium() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.premium)
  return _internal_premium();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_premium(ArgT0&& arg0, ArgT... args) {
 
 premium_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.premium)
}
inline std::string* FilterWarrant::mutable_premium() {
  std::string* _s = _internal_mutable_premium();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.premium)
  return _s;
}
inline const std::string& FilterWarrant::_internal_premium() const {
  return premium_.Get();
}
inline void FilterWarrant::_internal_set_premium(const std::string& value) {
  
  premium_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_premium() {
  
  return premium_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_premium() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.premium)
  return premium_.Release();
}
inline void FilterWarrant::set_allocated_premium(std::string* premium) {
  if (premium != nullptr) {
    
  } else {
    
  }
  premium_.SetAllocated(premium, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (premium_.IsDefault()) {
    premium_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.premium)
}

// string itm_otm = 15 [json_name = "itmOtm"];
inline void FilterWarrant::clear_itm_otm() {
  itm_otm_.ClearToEmpty();
}
inline const std::string& FilterWarrant::itm_otm() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.itm_otm)
  return _internal_itm_otm();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_itm_otm(ArgT0&& arg0, ArgT... args) {
 
 itm_otm_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.itm_otm)
}
inline std::string* FilterWarrant::mutable_itm_otm() {
  std::string* _s = _internal_mutable_itm_otm();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.itm_otm)
  return _s;
}
inline const std::string& FilterWarrant::_internal_itm_otm() const {
  return itm_otm_.Get();
}
inline void FilterWarrant::_internal_set_itm_otm(const std::string& value) {
  
  itm_otm_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_itm_otm() {
  
  return itm_otm_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_itm_otm() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.itm_otm)
  return itm_otm_.Release();
}
inline void FilterWarrant::set_allocated_itm_otm(std::string* itm_otm) {
  if (itm_otm != nullptr) {
    
  } else {
    
  }
  itm_otm_.SetAllocated(itm_otm, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (itm_otm_.IsDefault()) {
    itm_otm_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.itm_otm)
}

// string implied_volatility = 16 [json_name = "impliedVolatility"];
inline void FilterWarrant::clear_implied_volatility() {
  implied_volatility_.ClearToEmpty();
}
inline const std::string& FilterWarrant::implied_volatility() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.implied_volatility)
  return _internal_implied_volatility();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_implied_volatility(ArgT0&& arg0, ArgT... args) {
 
 implied_volatility_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.implied_volatility)
}
inline std::string* FilterWarrant::mutable_implied_volatility() {
  std::string* _s = _internal_mutable_implied_volatility();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.implied_volatility)
  return _s;
}
inline const std::string& FilterWarrant::_internal_implied_volatility() const {
  return implied_volatility_.Get();
}
inline void FilterWarrant::_internal_set_implied_volatility(const std::string& value) {
  
  implied_volatility_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_implied_volatility() {
  
  return implied_volatility_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_implied_volatility() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.implied_volatility)
  return implied_volatility_.Release();
}
inline void FilterWarrant::set_allocated_implied_volatility(std::string* implied_volatility) {
  if (implied_volatility != nullptr) {
    
  } else {
    
  }
  implied_volatility_.SetAllocated(implied_volatility, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (implied_volatility_.IsDefault()) {
    implied_volatility_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.implied_volatility)
}

// string delta = 17 [json_name = "delta"];
inline void FilterWarrant::clear_delta() {
  delta_.ClearToEmpty();
}
inline const std::string& FilterWarrant::delta() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.delta)
  return _internal_delta();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_delta(ArgT0&& arg0, ArgT... args) {
 
 delta_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.delta)
}
inline std::string* FilterWarrant::mutable_delta() {
  std::string* _s = _internal_mutable_delta();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.delta)
  return _s;
}
inline const std::string& FilterWarrant::_internal_delta() const {
  return delta_.Get();
}
inline void FilterWarrant::_internal_set_delta(const std::string& value) {
  
  delta_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_delta() {
  
  return delta_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_delta() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.delta)
  return delta_.Release();
}
inline void FilterWarrant::set_allocated_delta(std::string* delta) {
  if (delta != nullptr) {
    
  } else {
    
  }
  delta_.SetAllocated(delta, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (delta_.IsDefault()) {
    delta_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.delta)
}

// string call_price = 18 [json_name = "callPrice"];
inline void FilterWarrant::clear_call_price() {
  call_price_.ClearToEmpty();
}
inline const std::string& FilterWarrant::call_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.call_price)
  return _internal_call_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_call_price(ArgT0&& arg0, ArgT... args) {
 
 call_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.call_price)
}
inline std::string* FilterWarrant::mutable_call_price() {
  std::string* _s = _internal_mutable_call_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.call_price)
  return _s;
}
inline const std::string& FilterWarrant::_internal_call_price() const {
  return call_price_.Get();
}
inline void FilterWarrant::_internal_set_call_price(const std::string& value) {
  
  call_price_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_call_price() {
  
  return call_price_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_call_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.call_price)
  return call_price_.Release();
}
inline void FilterWarrant::set_allocated_call_price(std::string* call_price) {
  if (call_price != nullptr) {
    
  } else {
    
  }
  call_price_.SetAllocated(call_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (call_price_.IsDefault()) {
    call_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.call_price)
}

// string to_call_price = 19 [json_name = "toCallPrice"];
inline void FilterWarrant::clear_to_call_price() {
  to_call_price_.ClearToEmpty();
}
inline const std::string& FilterWarrant::to_call_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.to_call_price)
  return _internal_to_call_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_to_call_price(ArgT0&& arg0, ArgT... args) {
 
 to_call_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.to_call_price)
}
inline std::string* FilterWarrant::mutable_to_call_price() {
  std::string* _s = _internal_mutable_to_call_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.to_call_price)
  return _s;
}
inline const std::string& FilterWarrant::_internal_to_call_price() const {
  return to_call_price_.Get();
}
inline void FilterWarrant::_internal_set_to_call_price(const std::string& value) {
  
  to_call_price_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_to_call_price() {
  
  return to_call_price_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_to_call_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.to_call_price)
  return to_call_price_.Release();
}
inline void FilterWarrant::set_allocated_to_call_price(std::string* to_call_price) {
  if (to_call_price != nullptr) {
    
  } else {
    
  }
  to_call_price_.SetAllocated(to_call_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (to_call_price_.IsDefault()) {
    to_call_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.to_call_price)
}

// string effective_leverage = 20 [json_name = "effectiveLeverage"];
inline void FilterWarrant::clear_effective_leverage() {
  effective_leverage_.ClearToEmpty();
}
inline const std::string& FilterWarrant::effective_leverage() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.effective_leverage)
  return _internal_effective_leverage();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_effective_leverage(ArgT0&& arg0, ArgT... args) {
 
 effective_leverage_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.effective_leverage)
}
inline std::string* FilterWarrant::mutable_effective_leverage() {
  std::string* _s = _internal_mutable_effective_leverage();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.effective_leverage)
  return _s;
}
inline const std::string& FilterWarrant::_internal_effective_leverage() const {
  return effective_leverage_.Get();
}
inline void FilterWarrant::_internal_set_effective_leverage(const std::string& value) {
  
  effective_leverage_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_effective_leverage() {
  
  return effective_leverage_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_effective_leverage() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.effective_leverage)
  return effective_leverage_.Release();
}
inline void FilterWarrant::set_allocated_effective_leverage(std::string* effective_leverage) {
  if (effective_leverage != nullptr) {
    
  } else {
    
  }
  effective_leverage_.SetAllocated(effective_leverage, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (effective_leverage_.IsDefault()) {
    effective_leverage_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.effective_leverage)
}

// string leverage_ratio = 21 [json_name = "leverageRatio"];
inline void FilterWarrant::clear_leverage_ratio() {
  leverage_ratio_.ClearToEmpty();
}
inline const std::string& FilterWarrant::leverage_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.leverage_ratio)
  return _internal_leverage_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_leverage_ratio(ArgT0&& arg0, ArgT... args) {
 
 leverage_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.leverage_ratio)
}
inline std::string* FilterWarrant::mutable_leverage_ratio() {
  std::string* _s = _internal_mutable_leverage_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.leverage_ratio)
  return _s;
}
inline const std::string& FilterWarrant::_internal_leverage_ratio() const {
  return leverage_ratio_.Get();
}
inline void FilterWarrant::_internal_set_leverage_ratio(const std::string& value) {
  
  leverage_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_leverage_ratio() {
  
  return leverage_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_leverage_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.leverage_ratio)
  return leverage_ratio_.Release();
}
inline void FilterWarrant::set_allocated_leverage_ratio(std::string* leverage_ratio) {
  if (leverage_ratio != nullptr) {
    
  } else {
    
  }
  leverage_ratio_.SetAllocated(leverage_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (leverage_ratio_.IsDefault()) {
    leverage_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.leverage_ratio)
}

// string conversion_ratio = 22 [json_name = "conversionRatio"];
inline void FilterWarrant::clear_conversion_ratio() {
  conversion_ratio_.ClearToEmpty();
}
inline const std::string& FilterWarrant::conversion_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.conversion_ratio)
  return _internal_conversion_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_conversion_ratio(ArgT0&& arg0, ArgT... args) {
 
 conversion_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.conversion_ratio)
}
inline std::string* FilterWarrant::mutable_conversion_ratio() {
  std::string* _s = _internal_mutable_conversion_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.conversion_ratio)
  return _s;
}
inline const std::string& FilterWarrant::_internal_conversion_ratio() const {
  return conversion_ratio_.Get();
}
inline void FilterWarrant::_internal_set_conversion_ratio(const std::string& value) {
  
  conversion_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_conversion_ratio() {
  
  return conversion_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_conversion_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.conversion_ratio)
  return conversion_ratio_.Release();
}
inline void FilterWarrant::set_allocated_conversion_ratio(std::string* conversion_ratio) {
  if (conversion_ratio != nullptr) {
    
  } else {
    
  }
  conversion_ratio_.SetAllocated(conversion_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (conversion_ratio_.IsDefault()) {
    conversion_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.conversion_ratio)
}

// string balance_point = 23 [json_name = "balancePoint"];
inline void FilterWarrant::clear_balance_point() {
  balance_point_.ClearToEmpty();
}
inline const std::string& FilterWarrant::balance_point() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.balance_point)
  return _internal_balance_point();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FilterWarrant::set_balance_point(ArgT0&& arg0, ArgT... args) {
 
 balance_point_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.balance_point)
}
inline std::string* FilterWarrant::mutable_balance_point() {
  std::string* _s = _internal_mutable_balance_point();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.FilterWarrant.balance_point)
  return _s;
}
inline const std::string& FilterWarrant::_internal_balance_point() const {
  return balance_point_.Get();
}
inline void FilterWarrant::_internal_set_balance_point(const std::string& value) {
  
  balance_point_.Set(value, GetArenaForAllocation());
}
inline std::string* FilterWarrant::_internal_mutable_balance_point() {
  
  return balance_point_.Mutable(GetArenaForAllocation());
}
inline std::string* FilterWarrant::release_balance_point() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.FilterWarrant.balance_point)
  return balance_point_.Release();
}
inline void FilterWarrant::set_allocated_balance_point(std::string* balance_point) {
  if (balance_point != nullptr) {
    
  } else {
    
  }
  balance_point_.SetAllocated(balance_point, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (balance_point_.IsDefault()) {
    balance_point_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.FilterWarrant.balance_point)
}

// int32 status = 24 [json_name = "status"];
inline void FilterWarrant::clear_status() {
  status_ = 0;
}
inline int32_t FilterWarrant::_internal_status() const {
  return status_;
}
inline int32_t FilterWarrant::status() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.status)
  return _internal_status();
}
inline void FilterWarrant::_internal_set_status(int32_t value) {
  
  status_ = value;
}
inline void FilterWarrant::set_status(int32_t value) {
  _internal_set_status(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.status)
}

// int32 type = 25 [json_name = "type"];
inline void FilterWarrant::clear_type() {
  type_ = 0;
}
inline int32_t FilterWarrant::_internal_type() const {
  return type_;
}
inline int32_t FilterWarrant::type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.FilterWarrant.type)
  return _internal_type();
}
inline void FilterWarrant::_internal_set_type(int32_t value) {
  
  type_ = value;
}
inline void FilterWarrant::set_type(int32_t value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.FilterWarrant.type)
}

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

// MarketTradePeriodResponse

// repeated .longbridge.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
inline int MarketTradePeriodResponse::_internal_market_trade_session_size() const {
  return market_trade_session_.size();
}
inline int MarketTradePeriodResponse::market_trade_session_size() const {
  return _internal_market_trade_session_size();
}
inline void MarketTradePeriodResponse::clear_market_trade_session() {
  market_trade_session_.Clear();
}
inline ::longbridge::quote::v1::MarketTradePeriod* MarketTradePeriodResponse::mutable_market_trade_session(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session)
  return market_trade_session_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::MarketTradePeriod >*
MarketTradePeriodResponse::mutable_market_trade_session() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session)
  return &market_trade_session_;
}
inline const ::longbridge::quote::v1::MarketTradePeriod& MarketTradePeriodResponse::_internal_market_trade_session(int index) const {
  return market_trade_session_.Get(index);
}
inline const ::longbridge::quote::v1::MarketTradePeriod& MarketTradePeriodResponse::market_trade_session(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session)
  return _internal_market_trade_session(index);
}
inline ::longbridge::quote::v1::MarketTradePeriod* MarketTradePeriodResponse::_internal_add_market_trade_session() {
  return market_trade_session_.Add();
}
inline ::longbridge::quote::v1::MarketTradePeriod* MarketTradePeriodResponse::add_market_trade_session() {
  ::longbridge::quote::v1::MarketTradePeriod* _add = _internal_add_market_trade_session();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::MarketTradePeriod >&
MarketTradePeriodResponse::market_trade_session() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session)
  return market_trade_session_;
}

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

// MarketTradePeriod

// string market = 1 [json_name = "market"];
inline void MarketTradePeriod::clear_market() {
  market_.ClearToEmpty();
}
inline const std::string& MarketTradePeriod::market() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradePeriod.market)
  return _internal_market();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MarketTradePeriod::set_market(ArgT0&& arg0, ArgT... args) {
 
 market_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradePeriod.market)
}
inline std::string* MarketTradePeriod::mutable_market() {
  std::string* _s = _internal_mutable_market();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradePeriod.market)
  return _s;
}
inline const std::string& MarketTradePeriod::_internal_market() const {
  return market_.Get();
}
inline void MarketTradePeriod::_internal_set_market(const std::string& value) {
  
  market_.Set(value, GetArenaForAllocation());
}
inline std::string* MarketTradePeriod::_internal_mutable_market() {
  
  return market_.Mutable(GetArenaForAllocation());
}
inline std::string* MarketTradePeriod::release_market() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.MarketTradePeriod.market)
  return market_.Release();
}
inline void MarketTradePeriod::set_allocated_market(std::string* market) {
  if (market != nullptr) {
    
  } else {
    
  }
  market_.SetAllocated(market, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (market_.IsDefault()) {
    market_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.MarketTradePeriod.market)
}

// repeated .longbridge.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
inline int MarketTradePeriod::_internal_trade_session_size() const {
  return trade_session_.size();
}
inline int MarketTradePeriod::trade_session_size() const {
  return _internal_trade_session_size();
}
inline void MarketTradePeriod::clear_trade_session() {
  trade_session_.Clear();
}
inline ::longbridge::quote::v1::TradePeriod* MarketTradePeriod::mutable_trade_session(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradePeriod.trade_session)
  return trade_session_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::TradePeriod >*
MarketTradePeriod::mutable_trade_session() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.MarketTradePeriod.trade_session)
  return &trade_session_;
}
inline const ::longbridge::quote::v1::TradePeriod& MarketTradePeriod::_internal_trade_session(int index) const {
  return trade_session_.Get(index);
}
inline const ::longbridge::quote::v1::TradePeriod& MarketTradePeriod::trade_session(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradePeriod.trade_session)
  return _internal_trade_session(index);
}
inline ::longbridge::quote::v1::TradePeriod* MarketTradePeriod::_internal_add_trade_session() {
  return trade_session_.Add();
}
inline ::longbridge::quote::v1::TradePeriod* MarketTradePeriod::add_trade_session() {
  ::longbridge::quote::v1::TradePeriod* _add = _internal_add_trade_session();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradePeriod.trade_session)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::TradePeriod >&
MarketTradePeriod::trade_session() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.MarketTradePeriod.trade_session)
  return trade_session_;
}

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

// TradePeriod

// int32 beg_time = 1 [json_name = "begTime"];
inline void TradePeriod::clear_beg_time() {
  beg_time_ = 0;
}
inline int32_t TradePeriod::_internal_beg_time() const {
  return beg_time_;
}
inline int32_t TradePeriod::beg_time() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.TradePeriod.beg_time)
  return _internal_beg_time();
}
inline void TradePeriod::_internal_set_beg_time(int32_t value) {
  
  beg_time_ = value;
}
inline void TradePeriod::set_beg_time(int32_t value) {
  _internal_set_beg_time(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.TradePeriod.beg_time)
}

// int32 end_time = 2 [json_name = "endTime"];
inline void TradePeriod::clear_end_time() {
  end_time_ = 0;
}
inline int32_t TradePeriod::_internal_end_time() const {
  return end_time_;
}
inline int32_t TradePeriod::end_time() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.TradePeriod.end_time)
  return _internal_end_time();
}
inline void TradePeriod::_internal_set_end_time(int32_t value) {
  
  end_time_ = value;
}
inline void TradePeriod::set_end_time(int32_t value) {
  _internal_set_end_time(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.TradePeriod.end_time)
}

// .longbridge.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
inline void TradePeriod::clear_trade_session() {
  trade_session_ = 0;
}
inline ::longbridge::quote::v1::TradeSession TradePeriod::_internal_trade_session() const {
  return static_cast< ::longbridge::quote::v1::TradeSession >(trade_session_);
}
inline ::longbridge::quote::v1::TradeSession TradePeriod::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.TradePeriod.trade_session)
  return _internal_trade_session();
}
inline void TradePeriod::_internal_set_trade_session(::longbridge::quote::v1::TradeSession value) {
  
  trade_session_ = value;
}
inline void TradePeriod::set_trade_session(::longbridge::quote::v1::TradeSession value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.TradePeriod.trade_session)
}

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

// SubscriptionRequest

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

// SubscriptionResponse

// repeated .longbridge.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
inline int SubscriptionResponse::_internal_sub_list_size() const {
  return sub_list_.size();
}
inline int SubscriptionResponse::sub_list_size() const {
  return _internal_sub_list_size();
}
inline void SubscriptionResponse::clear_sub_list() {
  sub_list_.Clear();
}
inline ::longbridge::quote::v1::SubTypeList* SubscriptionResponse::mutable_sub_list(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SubscriptionResponse.sub_list)
  return sub_list_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SubTypeList >*
SubscriptionResponse::mutable_sub_list() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SubscriptionResponse.sub_list)
  return &sub_list_;
}
inline const ::longbridge::quote::v1::SubTypeList& SubscriptionResponse::_internal_sub_list(int index) const {
  return sub_list_.Get(index);
}
inline const ::longbridge::quote::v1::SubTypeList& SubscriptionResponse::sub_list(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubscriptionResponse.sub_list)
  return _internal_sub_list(index);
}
inline ::longbridge::quote::v1::SubTypeList* SubscriptionResponse::_internal_add_sub_list() {
  return sub_list_.Add();
}
inline ::longbridge::quote::v1::SubTypeList* SubscriptionResponse::add_sub_list() {
  ::longbridge::quote::v1::SubTypeList* _add = _internal_add_sub_list();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SubscriptionResponse.sub_list)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SubTypeList >&
SubscriptionResponse::sub_list() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SubscriptionResponse.sub_list)
  return sub_list_;
}

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

// SubTypeList

// string symbol = 1 [json_name = "symbol"];
inline void SubTypeList::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SubTypeList::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubTypeList.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SubTypeList::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubTypeList.symbol)
}
inline std::string* SubTypeList::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SubTypeList.symbol)
  return _s;
}
inline const std::string& SubTypeList::_internal_symbol() const {
  return symbol_.Get();
}
inline void SubTypeList::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SubTypeList::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SubTypeList::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SubTypeList.symbol)
  return symbol_.Release();
}
inline void SubTypeList::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SubTypeList.symbol)
}

// repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
inline int SubTypeList::_internal_sub_type_size() const {
  return sub_type_.size();
}
inline int SubTypeList::sub_type_size() const {
  return _internal_sub_type_size();
}
inline void SubTypeList::clear_sub_type() {
  sub_type_.Clear();
}
inline ::longbridge::quote::v1::SubType SubTypeList::_internal_sub_type(int index) const {
  return static_cast< ::longbridge::quote::v1::SubType >(sub_type_.Get(index));
}
inline ::longbridge::quote::v1::SubType SubTypeList::sub_type(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubTypeList.sub_type)
  return _internal_sub_type(index);
}
inline void SubTypeList::set_sub_type(int index, ::longbridge::quote::v1::SubType value) {
  sub_type_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubTypeList.sub_type)
}
inline void SubTypeList::_internal_add_sub_type(::longbridge::quote::v1::SubType value) {
  sub_type_.Add(value);
}
inline void SubTypeList::add_sub_type(::longbridge::quote::v1::SubType value) {
  _internal_add_sub_type(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SubTypeList.sub_type)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
SubTypeList::sub_type() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SubTypeList.sub_type)
  return sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SubTypeList::_internal_mutable_sub_type() {
  return &sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SubTypeList::mutable_sub_type() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SubTypeList.sub_type)
  return _internal_mutable_sub_type();
}

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

// SubscribeRequest

// repeated string symbol = 1 [json_name = "symbol"];
inline int SubscribeRequest::_internal_symbol_size() const {
  return symbol_.size();
}
inline int SubscribeRequest::symbol_size() const {
  return _internal_symbol_size();
}
inline void SubscribeRequest::clear_symbol() {
  symbol_.Clear();
}
inline std::string* SubscribeRequest::add_symbol() {
  std::string* _s = _internal_add_symbol();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.SubscribeRequest.symbol)
  return _s;
}
inline const std::string& SubscribeRequest::_internal_symbol(int index) const {
  return symbol_.Get(index);
}
inline const std::string& SubscribeRequest::symbol(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubscribeRequest.symbol)
  return _internal_symbol(index);
}
inline std::string* SubscribeRequest::mutable_symbol(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SubscribeRequest.symbol)
  return symbol_.Mutable(index);
}
inline void SubscribeRequest::set_symbol(int index, const std::string& value) {
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::set_symbol(int index, std::string&& value) {
  symbol_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::set_symbol(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::set_symbol(int index, const char* value, size_t size) {
  symbol_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline std::string* SubscribeRequest::_internal_add_symbol() {
  return symbol_.Add();
}
inline void SubscribeRequest::add_symbol(const std::string& value) {
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::add_symbol(std::string&& value) {
  symbol_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::add_symbol(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline void SubscribeRequest::add_symbol(const char* value, size_t size) {
  symbol_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.SubscribeRequest.symbol)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SubscribeRequest::symbol() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SubscribeRequest.symbol)
  return symbol_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
SubscribeRequest::mutable_symbol() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SubscribeRequest.symbol)
  return &symbol_;
}

// repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
inline int SubscribeRequest::_internal_sub_type_size() const {
  return sub_type_.size();
}
inline int SubscribeRequest::sub_type_size() const {
  return _internal_sub_type_size();
}
inline void SubscribeRequest::clear_sub_type() {
  sub_type_.Clear();
}
inline ::longbridge::quote::v1::SubType SubscribeRequest::_internal_sub_type(int index) const {
  return static_cast< ::longbridge::quote::v1::SubType >(sub_type_.Get(index));
}
inline ::longbridge::quote::v1::SubType SubscribeRequest::sub_type(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubscribeRequest.sub_type)
  return _internal_sub_type(index);
}
inline void SubscribeRequest::set_sub_type(int index, ::longbridge::quote::v1::SubType value) {
  sub_type_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubscribeRequest.sub_type)
}
inline void SubscribeRequest::_internal_add_sub_type(::longbridge::quote::v1::SubType value) {
  sub_type_.Add(value);
}
inline void SubscribeRequest::add_sub_type(::longbridge::quote::v1::SubType value) {
  _internal_add_sub_type(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SubscribeRequest.sub_type)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
SubscribeRequest::sub_type() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SubscribeRequest.sub_type)
  return sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SubscribeRequest::_internal_mutable_sub_type() {
  return &sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SubscribeRequest::mutable_sub_type() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SubscribeRequest.sub_type)
  return _internal_mutable_sub_type();
}

// bool is_first_push = 3 [json_name = "isFirstPush"];
inline void SubscribeRequest::clear_is_first_push() {
  is_first_push_ = false;
}
inline bool SubscribeRequest::_internal_is_first_push() const {
  return is_first_push_;
}
inline bool SubscribeRequest::is_first_push() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SubscribeRequest.is_first_push)
  return _internal_is_first_push();
}
inline void SubscribeRequest::_internal_set_is_first_push(bool value) {
  
  is_first_push_ = value;
}
inline void SubscribeRequest::set_is_first_push(bool value) {
  _internal_set_is_first_push(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SubscribeRequest.is_first_push)
}

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

// UnsubscribeRequest

// repeated string symbol = 1 [json_name = "symbol"];
inline int UnsubscribeRequest::_internal_symbol_size() const {
  return symbol_.size();
}
inline int UnsubscribeRequest::symbol_size() const {
  return _internal_symbol_size();
}
inline void UnsubscribeRequest::clear_symbol() {
  symbol_.Clear();
}
inline std::string* UnsubscribeRequest::add_symbol() {
  std::string* _s = _internal_add_symbol();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.UnsubscribeRequest.symbol)
  return _s;
}
inline const std::string& UnsubscribeRequest::_internal_symbol(int index) const {
  return symbol_.Get(index);
}
inline const std::string& UnsubscribeRequest::symbol(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UnsubscribeRequest.symbol)
  return _internal_symbol(index);
}
inline std::string* UnsubscribeRequest::mutable_symbol(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UnsubscribeRequest.symbol)
  return symbol_.Mutable(index);
}
inline void UnsubscribeRequest::set_symbol(int index, const std::string& value) {
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::set_symbol(int index, std::string&& value) {
  symbol_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::set_symbol(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::set_symbol(int index, const char* value, size_t size) {
  symbol_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline std::string* UnsubscribeRequest::_internal_add_symbol() {
  return symbol_.Add();
}
inline void UnsubscribeRequest::add_symbol(const std::string& value) {
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::add_symbol(std::string&& value) {
  symbol_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::add_symbol(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbol_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline void UnsubscribeRequest::add_symbol(const char* value, size_t size) {
  symbol_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.UnsubscribeRequest.symbol)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
UnsubscribeRequest::symbol() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.UnsubscribeRequest.symbol)
  return symbol_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
UnsubscribeRequest::mutable_symbol() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.UnsubscribeRequest.symbol)
  return &symbol_;
}

// repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
inline int UnsubscribeRequest::_internal_sub_type_size() const {
  return sub_type_.size();
}
inline int UnsubscribeRequest::sub_type_size() const {
  return _internal_sub_type_size();
}
inline void UnsubscribeRequest::clear_sub_type() {
  sub_type_.Clear();
}
inline ::longbridge::quote::v1::SubType UnsubscribeRequest::_internal_sub_type(int index) const {
  return static_cast< ::longbridge::quote::v1::SubType >(sub_type_.Get(index));
}
inline ::longbridge::quote::v1::SubType UnsubscribeRequest::sub_type(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UnsubscribeRequest.sub_type)
  return _internal_sub_type(index);
}
inline void UnsubscribeRequest::set_sub_type(int index, ::longbridge::quote::v1::SubType value) {
  sub_type_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UnsubscribeRequest.sub_type)
}
inline void UnsubscribeRequest::_internal_add_sub_type(::longbridge::quote::v1::SubType value) {
  sub_type_.Add(value);
}
inline void UnsubscribeRequest::add_sub_type(::longbridge::quote::v1::SubType value) {
  _internal_add_sub_type(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.UnsubscribeRequest.sub_type)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
UnsubscribeRequest::sub_type() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.UnsubscribeRequest.sub_type)
  return sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
UnsubscribeRequest::_internal_mutable_sub_type() {
  return &sub_type_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
UnsubscribeRequest::mutable_sub_type() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.UnsubscribeRequest.sub_type)
  return _internal_mutable_sub_type();
}

// bool unsub_all = 3 [json_name = "unsubAll"];
inline void UnsubscribeRequest::clear_unsub_all() {
  unsub_all_ = false;
}
inline bool UnsubscribeRequest::_internal_unsub_all() const {
  return unsub_all_;
}
inline bool UnsubscribeRequest::unsub_all() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UnsubscribeRequest.unsub_all)
  return _internal_unsub_all();
}
inline void UnsubscribeRequest::_internal_set_unsub_all(bool value) {
  
  unsub_all_ = value;
}
inline void UnsubscribeRequest::set_unsub_all(bool value) {
  _internal_set_unsub_all(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UnsubscribeRequest.unsub_all)
}

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

// UnsubscribeResponse

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

// PushQuote

// string symbol = 1 [json_name = "symbol"];
inline void PushQuote::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& PushQuote::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.symbol)
}
inline std::string* PushQuote::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.symbol)
  return _s;
}
inline const std::string& PushQuote::_internal_symbol() const {
  return symbol_.Get();
}
inline void PushQuote::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.symbol)
  return symbol_.Release();
}
inline void PushQuote::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.symbol)
}

// int64 sequence = 2 [json_name = "sequence"];
inline void PushQuote::clear_sequence() {
  sequence_ = int64_t{0};
}
inline int64_t PushQuote::_internal_sequence() const {
  return sequence_;
}
inline int64_t PushQuote::sequence() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.sequence)
  return _internal_sequence();
}
inline void PushQuote::_internal_set_sequence(int64_t value) {
  
  sequence_ = value;
}
inline void PushQuote::set_sequence(int64_t value) {
  _internal_set_sequence(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.sequence)
}

// string last_done = 3 [json_name = "lastDone"];
inline void PushQuote::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& PushQuote::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.last_done)
}
inline std::string* PushQuote::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.last_done)
  return _s;
}
inline const std::string& PushQuote::_internal_last_done() const {
  return last_done_.Get();
}
inline void PushQuote::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.last_done)
  return last_done_.Release();
}
inline void PushQuote::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.last_done)
}

// string open = 4 [json_name = "open"];
inline void PushQuote::clear_open() {
  open_.ClearToEmpty();
}
inline const std::string& PushQuote::open() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.open)
  return _internal_open();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_open(ArgT0&& arg0, ArgT... args) {
 
 open_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.open)
}
inline std::string* PushQuote::mutable_open() {
  std::string* _s = _internal_mutable_open();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.open)
  return _s;
}
inline const std::string& PushQuote::_internal_open() const {
  return open_.Get();
}
inline void PushQuote::_internal_set_open(const std::string& value) {
  
  open_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_open() {
  
  return open_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_open() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.open)
  return open_.Release();
}
inline void PushQuote::set_allocated_open(std::string* open) {
  if (open != nullptr) {
    
  } else {
    
  }
  open_.SetAllocated(open, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (open_.IsDefault()) {
    open_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.open)
}

// string high = 5 [json_name = "high"];
inline void PushQuote::clear_high() {
  high_.ClearToEmpty();
}
inline const std::string& PushQuote::high() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.high)
  return _internal_high();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_high(ArgT0&& arg0, ArgT... args) {
 
 high_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.high)
}
inline std::string* PushQuote::mutable_high() {
  std::string* _s = _internal_mutable_high();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.high)
  return _s;
}
inline const std::string& PushQuote::_internal_high() const {
  return high_.Get();
}
inline void PushQuote::_internal_set_high(const std::string& value) {
  
  high_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_high() {
  
  return high_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_high() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.high)
  return high_.Release();
}
inline void PushQuote::set_allocated_high(std::string* high) {
  if (high != nullptr) {
    
  } else {
    
  }
  high_.SetAllocated(high, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (high_.IsDefault()) {
    high_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.high)
}

// string low = 6 [json_name = "low"];
inline void PushQuote::clear_low() {
  low_.ClearToEmpty();
}
inline const std::string& PushQuote::low() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.low)
  return _internal_low();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_low(ArgT0&& arg0, ArgT... args) {
 
 low_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.low)
}
inline std::string* PushQuote::mutable_low() {
  std::string* _s = _internal_mutable_low();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.low)
  return _s;
}
inline const std::string& PushQuote::_internal_low() const {
  return low_.Get();
}
inline void PushQuote::_internal_set_low(const std::string& value) {
  
  low_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_low() {
  
  return low_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_low() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.low)
  return low_.Release();
}
inline void PushQuote::set_allocated_low(std::string* low) {
  if (low != nullptr) {
    
  } else {
    
  }
  low_.SetAllocated(low, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (low_.IsDefault()) {
    low_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.low)
}

// int64 timestamp = 7 [json_name = "timestamp"];
inline void PushQuote::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t PushQuote::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t PushQuote::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.timestamp)
  return _internal_timestamp();
}
inline void PushQuote::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void PushQuote::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.timestamp)
}

// int64 volume = 8 [json_name = "volume"];
inline void PushQuote::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t PushQuote::_internal_volume() const {
  return volume_;
}
inline int64_t PushQuote::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.volume)
  return _internal_volume();
}
inline void PushQuote::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void PushQuote::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.volume)
}

// string turnover = 9 [json_name = "turnover"];
inline void PushQuote::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& PushQuote::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.turnover)
}
inline std::string* PushQuote::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.turnover)
  return _s;
}
inline const std::string& PushQuote::_internal_turnover() const {
  return turnover_.Get();
}
inline void PushQuote::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.turnover)
  return turnover_.Release();
}
inline void PushQuote::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.turnover)
}

// .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
inline void PushQuote::clear_trade_status() {
  trade_status_ = 0;
}
inline ::longbridge::quote::v1::TradeStatus PushQuote::_internal_trade_status() const {
  return static_cast< ::longbridge::quote::v1::TradeStatus >(trade_status_);
}
inline ::longbridge::quote::v1::TradeStatus PushQuote::trade_status() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.trade_status)
  return _internal_trade_status();
}
inline void PushQuote::_internal_set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  
  trade_status_ = value;
}
inline void PushQuote::set_trade_status(::longbridge::quote::v1::TradeStatus value) {
  _internal_set_trade_status(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.trade_status)
}

// .longbridge.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
inline void PushQuote::clear_trade_session() {
  trade_session_ = 0;
}
inline ::longbridge::quote::v1::TradeSession PushQuote::_internal_trade_session() const {
  return static_cast< ::longbridge::quote::v1::TradeSession >(trade_session_);
}
inline ::longbridge::quote::v1::TradeSession PushQuote::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.trade_session)
  return _internal_trade_session();
}
inline void PushQuote::_internal_set_trade_session(::longbridge::quote::v1::TradeSession value) {
  
  trade_session_ = value;
}
inline void PushQuote::set_trade_session(::longbridge::quote::v1::TradeSession value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.trade_session)
}

// int64 current_volume = 12 [json_name = "currentVolume"];
inline void PushQuote::clear_current_volume() {
  current_volume_ = int64_t{0};
}
inline int64_t PushQuote::_internal_current_volume() const {
  return current_volume_;
}
inline int64_t PushQuote::current_volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.current_volume)
  return _internal_current_volume();
}
inline void PushQuote::_internal_set_current_volume(int64_t value) {
  
  current_volume_ = value;
}
inline void PushQuote::set_current_volume(int64_t value) {
  _internal_set_current_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.current_volume)
}

// string current_turnover = 13 [json_name = "currentTurnover"];
inline void PushQuote::clear_current_turnover() {
  current_turnover_.ClearToEmpty();
}
inline const std::string& PushQuote::current_turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.current_turnover)
  return _internal_current_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushQuote::set_current_turnover(ArgT0&& arg0, ArgT... args) {
 
 current_turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.current_turnover)
}
inline std::string* PushQuote::mutable_current_turnover() {
  std::string* _s = _internal_mutable_current_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushQuote.current_turnover)
  return _s;
}
inline const std::string& PushQuote::_internal_current_turnover() const {
  return current_turnover_.Get();
}
inline void PushQuote::_internal_set_current_turnover(const std::string& value) {
  
  current_turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* PushQuote::_internal_mutable_current_turnover() {
  
  return current_turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* PushQuote::release_current_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushQuote.current_turnover)
  return current_turnover_.Release();
}
inline void PushQuote::set_allocated_current_turnover(std::string* current_turnover) {
  if (current_turnover != nullptr) {
    
  } else {
    
  }
  current_turnover_.SetAllocated(current_turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (current_turnover_.IsDefault()) {
    current_turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushQuote.current_turnover)
}

// .longbridge.quote.v1.PushQuoteTag tag = 14 [json_name = "tag"];
inline void PushQuote::clear_tag() {
  tag_ = 0;
}
inline ::longbridge::quote::v1::PushQuoteTag PushQuote::_internal_tag() const {
  return static_cast< ::longbridge::quote::v1::PushQuoteTag >(tag_);
}
inline ::longbridge::quote::v1::PushQuoteTag PushQuote::tag() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushQuote.tag)
  return _internal_tag();
}
inline void PushQuote::_internal_set_tag(::longbridge::quote::v1::PushQuoteTag value) {
  
  tag_ = value;
}
inline void PushQuote::set_tag(::longbridge::quote::v1::PushQuoteTag value) {
  _internal_set_tag(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushQuote.tag)
}

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

// PushDepth

// string symbol = 1 [json_name = "symbol"];
inline void PushDepth::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& PushDepth::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushDepth.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushDepth::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushDepth.symbol)
}
inline std::string* PushDepth::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushDepth.symbol)
  return _s;
}
inline const std::string& PushDepth::_internal_symbol() const {
  return symbol_.Get();
}
inline void PushDepth::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* PushDepth::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* PushDepth::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushDepth.symbol)
  return symbol_.Release();
}
inline void PushDepth::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushDepth.symbol)
}

// int64 sequence = 2 [json_name = "sequence"];
inline void PushDepth::clear_sequence() {
  sequence_ = int64_t{0};
}
inline int64_t PushDepth::_internal_sequence() const {
  return sequence_;
}
inline int64_t PushDepth::sequence() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushDepth.sequence)
  return _internal_sequence();
}
inline void PushDepth::_internal_set_sequence(int64_t value) {
  
  sequence_ = value;
}
inline void PushDepth::set_sequence(int64_t value) {
  _internal_set_sequence(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushDepth.sequence)
}

// repeated .longbridge.quote.v1.Depth ask = 3 [json_name = "ask"];
inline int PushDepth::_internal_ask_size() const {
  return ask_.size();
}
inline int PushDepth::ask_size() const {
  return _internal_ask_size();
}
inline void PushDepth::clear_ask() {
  ask_.Clear();
}
inline ::longbridge::quote::v1::Depth* PushDepth::mutable_ask(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushDepth.ask)
  return ask_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
PushDepth::mutable_ask() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.PushDepth.ask)
  return &ask_;
}
inline const ::longbridge::quote::v1::Depth& PushDepth::_internal_ask(int index) const {
  return ask_.Get(index);
}
inline const ::longbridge::quote::v1::Depth& PushDepth::ask(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushDepth.ask)
  return _internal_ask(index);
}
inline ::longbridge::quote::v1::Depth* PushDepth::_internal_add_ask() {
  return ask_.Add();
}
inline ::longbridge::quote::v1::Depth* PushDepth::add_ask() {
  ::longbridge::quote::v1::Depth* _add = _internal_add_ask();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.PushDepth.ask)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
PushDepth::ask() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.PushDepth.ask)
  return ask_;
}

// repeated .longbridge.quote.v1.Depth bid = 4 [json_name = "bid"];
inline int PushDepth::_internal_bid_size() const {
  return bid_.size();
}
inline int PushDepth::bid_size() const {
  return _internal_bid_size();
}
inline void PushDepth::clear_bid() {
  bid_.Clear();
}
inline ::longbridge::quote::v1::Depth* PushDepth::mutable_bid(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushDepth.bid)
  return bid_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >*
PushDepth::mutable_bid() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.PushDepth.bid)
  return &bid_;
}
inline const ::longbridge::quote::v1::Depth& PushDepth::_internal_bid(int index) const {
  return bid_.Get(index);
}
inline const ::longbridge::quote::v1::Depth& PushDepth::bid(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushDepth.bid)
  return _internal_bid(index);
}
inline ::longbridge::quote::v1::Depth* PushDepth::_internal_add_bid() {
  return bid_.Add();
}
inline ::longbridge::quote::v1::Depth* PushDepth::add_bid() {
  ::longbridge::quote::v1::Depth* _add = _internal_add_bid();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.PushDepth.bid)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Depth >&
PushDepth::bid() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.PushDepth.bid)
  return bid_;
}

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

// PushBrokers

// string symbol = 1 [json_name = "symbol"];
inline void PushBrokers::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& PushBrokers::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushBrokers.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushBrokers::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushBrokers.symbol)
}
inline std::string* PushBrokers::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushBrokers.symbol)
  return _s;
}
inline const std::string& PushBrokers::_internal_symbol() const {
  return symbol_.Get();
}
inline void PushBrokers::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* PushBrokers::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* PushBrokers::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushBrokers.symbol)
  return symbol_.Release();
}
inline void PushBrokers::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushBrokers.symbol)
}

// int64 sequence = 2 [json_name = "sequence"];
inline void PushBrokers::clear_sequence() {
  sequence_ = int64_t{0};
}
inline int64_t PushBrokers::_internal_sequence() const {
  return sequence_;
}
inline int64_t PushBrokers::sequence() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushBrokers.sequence)
  return _internal_sequence();
}
inline void PushBrokers::_internal_set_sequence(int64_t value) {
  
  sequence_ = value;
}
inline void PushBrokers::set_sequence(int64_t value) {
  _internal_set_sequence(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushBrokers.sequence)
}

// repeated .longbridge.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
inline int PushBrokers::_internal_ask_brokers_size() const {
  return ask_brokers_.size();
}
inline int PushBrokers::ask_brokers_size() const {
  return _internal_ask_brokers_size();
}
inline void PushBrokers::clear_ask_brokers() {
  ask_brokers_.Clear();
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::mutable_ask_brokers(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushBrokers.ask_brokers)
  return ask_brokers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
PushBrokers::mutable_ask_brokers() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.PushBrokers.ask_brokers)
  return &ask_brokers_;
}
inline const ::longbridge::quote::v1::Brokers& PushBrokers::_internal_ask_brokers(int index) const {
  return ask_brokers_.Get(index);
}
inline const ::longbridge::quote::v1::Brokers& PushBrokers::ask_brokers(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushBrokers.ask_brokers)
  return _internal_ask_brokers(index);
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::_internal_add_ask_brokers() {
  return ask_brokers_.Add();
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::add_ask_brokers() {
  ::longbridge::quote::v1::Brokers* _add = _internal_add_ask_brokers();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.PushBrokers.ask_brokers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
PushBrokers::ask_brokers() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.PushBrokers.ask_brokers)
  return ask_brokers_;
}

// repeated .longbridge.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
inline int PushBrokers::_internal_bid_brokers_size() const {
  return bid_brokers_.size();
}
inline int PushBrokers::bid_brokers_size() const {
  return _internal_bid_brokers_size();
}
inline void PushBrokers::clear_bid_brokers() {
  bid_brokers_.Clear();
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::mutable_bid_brokers(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushBrokers.bid_brokers)
  return bid_brokers_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >*
PushBrokers::mutable_bid_brokers() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.PushBrokers.bid_brokers)
  return &bid_brokers_;
}
inline const ::longbridge::quote::v1::Brokers& PushBrokers::_internal_bid_brokers(int index) const {
  return bid_brokers_.Get(index);
}
inline const ::longbridge::quote::v1::Brokers& PushBrokers::bid_brokers(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushBrokers.bid_brokers)
  return _internal_bid_brokers(index);
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::_internal_add_bid_brokers() {
  return bid_brokers_.Add();
}
inline ::longbridge::quote::v1::Brokers* PushBrokers::add_bid_brokers() {
  ::longbridge::quote::v1::Brokers* _add = _internal_add_bid_brokers();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.PushBrokers.bid_brokers)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Brokers >&
PushBrokers::bid_brokers() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.PushBrokers.bid_brokers)
  return bid_brokers_;
}

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

// PushTrade

// string symbol = 1 [json_name = "symbol"];
inline void PushTrade::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& PushTrade::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushTrade.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PushTrade::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushTrade.symbol)
}
inline std::string* PushTrade::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushTrade.symbol)
  return _s;
}
inline const std::string& PushTrade::_internal_symbol() const {
  return symbol_.Get();
}
inline void PushTrade::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* PushTrade::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* PushTrade::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.PushTrade.symbol)
  return symbol_.Release();
}
inline void PushTrade::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.PushTrade.symbol)
}

// int64 sequence = 2 [json_name = "sequence"];
inline void PushTrade::clear_sequence() {
  sequence_ = int64_t{0};
}
inline int64_t PushTrade::_internal_sequence() const {
  return sequence_;
}
inline int64_t PushTrade::sequence() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushTrade.sequence)
  return _internal_sequence();
}
inline void PushTrade::_internal_set_sequence(int64_t value) {
  
  sequence_ = value;
}
inline void PushTrade::set_sequence(int64_t value) {
  _internal_set_sequence(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.PushTrade.sequence)
}

// repeated .longbridge.quote.v1.Trade trade = 3 [json_name = "trade"];
inline int PushTrade::_internal_trade_size() const {
  return trade_.size();
}
inline int PushTrade::trade_size() const {
  return _internal_trade_size();
}
inline void PushTrade::clear_trade() {
  trade_.Clear();
}
inline ::longbridge::quote::v1::Trade* PushTrade::mutable_trade(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.PushTrade.trade)
  return trade_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >*
PushTrade::mutable_trade() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.PushTrade.trade)
  return &trade_;
}
inline const ::longbridge::quote::v1::Trade& PushTrade::_internal_trade(int index) const {
  return trade_.Get(index);
}
inline const ::longbridge::quote::v1::Trade& PushTrade::trade(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.PushTrade.trade)
  return _internal_trade(index);
}
inline ::longbridge::quote::v1::Trade* PushTrade::_internal_add_trade() {
  return trade_.Add();
}
inline ::longbridge::quote::v1::Trade* PushTrade::add_trade() {
  ::longbridge::quote::v1::Trade* _add = _internal_add_trade();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.PushTrade.trade)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::Trade >&
PushTrade::trade() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.PushTrade.trade)
  return trade_;
}

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

// MarketTradeDayRequest

// string market = 1 [json_name = "market"];
inline void MarketTradeDayRequest::clear_market() {
  market_.ClearToEmpty();
}
inline const std::string& MarketTradeDayRequest::market() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradeDayRequest.market)
  return _internal_market();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MarketTradeDayRequest::set_market(ArgT0&& arg0, ArgT... args) {
 
 market_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayRequest.market)
}
inline std::string* MarketTradeDayRequest::mutable_market() {
  std::string* _s = _internal_mutable_market();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradeDayRequest.market)
  return _s;
}
inline const std::string& MarketTradeDayRequest::_internal_market() const {
  return market_.Get();
}
inline void MarketTradeDayRequest::_internal_set_market(const std::string& value) {
  
  market_.Set(value, GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::_internal_mutable_market() {
  
  return market_.Mutable(GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::release_market() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.MarketTradeDayRequest.market)
  return market_.Release();
}
inline void MarketTradeDayRequest::set_allocated_market(std::string* market) {
  if (market != nullptr) {
    
  } else {
    
  }
  market_.SetAllocated(market, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (market_.IsDefault()) {
    market_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.MarketTradeDayRequest.market)
}

// string beg_day = 2 [json_name = "begDay"];
inline void MarketTradeDayRequest::clear_beg_day() {
  beg_day_.ClearToEmpty();
}
inline const std::string& MarketTradeDayRequest::beg_day() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradeDayRequest.beg_day)
  return _internal_beg_day();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MarketTradeDayRequest::set_beg_day(ArgT0&& arg0, ArgT... args) {
 
 beg_day_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayRequest.beg_day)
}
inline std::string* MarketTradeDayRequest::mutable_beg_day() {
  std::string* _s = _internal_mutable_beg_day();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradeDayRequest.beg_day)
  return _s;
}
inline const std::string& MarketTradeDayRequest::_internal_beg_day() const {
  return beg_day_.Get();
}
inline void MarketTradeDayRequest::_internal_set_beg_day(const std::string& value) {
  
  beg_day_.Set(value, GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::_internal_mutable_beg_day() {
  
  return beg_day_.Mutable(GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::release_beg_day() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.MarketTradeDayRequest.beg_day)
  return beg_day_.Release();
}
inline void MarketTradeDayRequest::set_allocated_beg_day(std::string* beg_day) {
  if (beg_day != nullptr) {
    
  } else {
    
  }
  beg_day_.SetAllocated(beg_day, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (beg_day_.IsDefault()) {
    beg_day_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.MarketTradeDayRequest.beg_day)
}

// string end_day = 3 [json_name = "endDay"];
inline void MarketTradeDayRequest::clear_end_day() {
  end_day_.ClearToEmpty();
}
inline const std::string& MarketTradeDayRequest::end_day() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradeDayRequest.end_day)
  return _internal_end_day();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MarketTradeDayRequest::set_end_day(ArgT0&& arg0, ArgT... args) {
 
 end_day_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayRequest.end_day)
}
inline std::string* MarketTradeDayRequest::mutable_end_day() {
  std::string* _s = _internal_mutable_end_day();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradeDayRequest.end_day)
  return _s;
}
inline const std::string& MarketTradeDayRequest::_internal_end_day() const {
  return end_day_.Get();
}
inline void MarketTradeDayRequest::_internal_set_end_day(const std::string& value) {
  
  end_day_.Set(value, GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::_internal_mutable_end_day() {
  
  return end_day_.Mutable(GetArenaForAllocation());
}
inline std::string* MarketTradeDayRequest::release_end_day() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.MarketTradeDayRequest.end_day)
  return end_day_.Release();
}
inline void MarketTradeDayRequest::set_allocated_end_day(std::string* end_day) {
  if (end_day != nullptr) {
    
  } else {
    
  }
  end_day_.SetAllocated(end_day, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (end_day_.IsDefault()) {
    end_day_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.MarketTradeDayRequest.end_day)
}

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

// MarketTradeDayResponse

// repeated string trade_day = 1 [json_name = "tradeDay"];
inline int MarketTradeDayResponse::_internal_trade_day_size() const {
  return trade_day_.size();
}
inline int MarketTradeDayResponse::trade_day_size() const {
  return _internal_trade_day_size();
}
inline void MarketTradeDayResponse::clear_trade_day() {
  trade_day_.Clear();
}
inline std::string* MarketTradeDayResponse::add_trade_day() {
  std::string* _s = _internal_add_trade_day();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
  return _s;
}
inline const std::string& MarketTradeDayResponse::_internal_trade_day(int index) const {
  return trade_day_.Get(index);
}
inline const std::string& MarketTradeDayResponse::trade_day(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
  return _internal_trade_day(index);
}
inline std::string* MarketTradeDayResponse::mutable_trade_day(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
  return trade_day_.Mutable(index);
}
inline void MarketTradeDayResponse::set_trade_day(int index, const std::string& value) {
  trade_day_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::set_trade_day(int index, std::string&& value) {
  trade_day_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::set_trade_day(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  trade_day_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::set_trade_day(int index, const char* value, size_t size) {
  trade_day_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline std::string* MarketTradeDayResponse::_internal_add_trade_day() {
  return trade_day_.Add();
}
inline void MarketTradeDayResponse::add_trade_day(const std::string& value) {
  trade_day_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::add_trade_day(std::string&& value) {
  trade_day_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::add_trade_day(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  trade_day_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline void MarketTradeDayResponse::add_trade_day(const char* value, size_t size) {
  trade_day_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MarketTradeDayResponse::trade_day() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
  return trade_day_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MarketTradeDayResponse::mutable_trade_day() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.MarketTradeDayResponse.trade_day)
  return &trade_day_;
}

// repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
inline int MarketTradeDayResponse::_internal_half_trade_day_size() const {
  return half_trade_day_.size();
}
inline int MarketTradeDayResponse::half_trade_day_size() const {
  return _internal_half_trade_day_size();
}
inline void MarketTradeDayResponse::clear_half_trade_day() {
  half_trade_day_.Clear();
}
inline std::string* MarketTradeDayResponse::add_half_trade_day() {
  std::string* _s = _internal_add_half_trade_day();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
  return _s;
}
inline const std::string& MarketTradeDayResponse::_internal_half_trade_day(int index) const {
  return half_trade_day_.Get(index);
}
inline const std::string& MarketTradeDayResponse::half_trade_day(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
  return _internal_half_trade_day(index);
}
inline std::string* MarketTradeDayResponse::mutable_half_trade_day(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
  return half_trade_day_.Mutable(index);
}
inline void MarketTradeDayResponse::set_half_trade_day(int index, const std::string& value) {
  half_trade_day_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::set_half_trade_day(int index, std::string&& value) {
  half_trade_day_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::set_half_trade_day(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  half_trade_day_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::set_half_trade_day(int index, const char* value, size_t size) {
  half_trade_day_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline std::string* MarketTradeDayResponse::_internal_add_half_trade_day() {
  return half_trade_day_.Add();
}
inline void MarketTradeDayResponse::add_half_trade_day(const std::string& value) {
  half_trade_day_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::add_half_trade_day(std::string&& value) {
  half_trade_day_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::add_half_trade_day(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  half_trade_day_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline void MarketTradeDayResponse::add_half_trade_day(const char* value, size_t size) {
  half_trade_day_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MarketTradeDayResponse::half_trade_day() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
  return half_trade_day_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MarketTradeDayResponse::mutable_half_trade_day() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.MarketTradeDayResponse.half_trade_day)
  return &half_trade_day_;
}

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

// CapitalFlowIntradayRequest

// string symbol = 1 [json_name = "symbol"];
inline void CapitalFlowIntradayRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& CapitalFlowIntradayRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalFlowIntradayRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalFlowIntradayRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalFlowIntradayRequest.symbol)
}
inline std::string* CapitalFlowIntradayRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalFlowIntradayRequest.symbol)
  return _s;
}
inline const std::string& CapitalFlowIntradayRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void CapitalFlowIntradayRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalFlowIntradayRequest.symbol)
  return symbol_.Release();
}
inline void CapitalFlowIntradayRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalFlowIntradayRequest.symbol)
}

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

// CapitalFlowIntradayResponse_CapitalFlowLine

// string inflow = 1 [json_name = "inflow"];
inline void CapitalFlowIntradayResponse_CapitalFlowLine::clear_inflow() {
  inflow_.ClearToEmpty();
}
inline const std::string& CapitalFlowIntradayResponse_CapitalFlowLine::inflow() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow)
  return _internal_inflow();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalFlowIntradayResponse_CapitalFlowLine::set_inflow(ArgT0&& arg0, ArgT... args) {
 
 inflow_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow)
}
inline std::string* CapitalFlowIntradayResponse_CapitalFlowLine::mutable_inflow() {
  std::string* _s = _internal_mutable_inflow();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow)
  return _s;
}
inline const std::string& CapitalFlowIntradayResponse_CapitalFlowLine::_internal_inflow() const {
  return inflow_.Get();
}
inline void CapitalFlowIntradayResponse_CapitalFlowLine::_internal_set_inflow(const std::string& value) {
  
  inflow_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayResponse_CapitalFlowLine::_internal_mutable_inflow() {
  
  return inflow_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayResponse_CapitalFlowLine::release_inflow() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow)
  return inflow_.Release();
}
inline void CapitalFlowIntradayResponse_CapitalFlowLine::set_allocated_inflow(std::string* inflow) {
  if (inflow != nullptr) {
    
  } else {
    
  }
  inflow_.SetAllocated(inflow, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (inflow_.IsDefault()) {
    inflow_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow)
}

// int64 timestamp = 2 [json_name = "timestamp"];
inline void CapitalFlowIntradayResponse_CapitalFlowLine::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t CapitalFlowIntradayResponse_CapitalFlowLine::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t CapitalFlowIntradayResponse_CapitalFlowLine::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.timestamp)
  return _internal_timestamp();
}
inline void CapitalFlowIntradayResponse_CapitalFlowLine::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void CapitalFlowIntradayResponse_CapitalFlowLine::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.timestamp)
}

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

// CapitalFlowIntradayResponse

// string symbol = 1 [json_name = "symbol"];
inline void CapitalFlowIntradayResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& CapitalFlowIntradayResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalFlowIntradayResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalFlowIntradayResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalFlowIntradayResponse.symbol)
}
inline std::string* CapitalFlowIntradayResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalFlowIntradayResponse.symbol)
  return _s;
}
inline const std::string& CapitalFlowIntradayResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void CapitalFlowIntradayResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalFlowIntradayResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalFlowIntradayResponse.symbol)
  return symbol_.Release();
}
inline void CapitalFlowIntradayResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalFlowIntradayResponse.symbol)
}

// repeated .longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
inline int CapitalFlowIntradayResponse::_internal_capital_flow_lines_size() const {
  return capital_flow_lines_.size();
}
inline int CapitalFlowIntradayResponse::capital_flow_lines_size() const {
  return _internal_capital_flow_lines_size();
}
inline void CapitalFlowIntradayResponse::clear_capital_flow_lines() {
  capital_flow_lines_.Clear();
}
inline ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* CapitalFlowIntradayResponse::mutable_capital_flow_lines(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines)
  return capital_flow_lines_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >*
CapitalFlowIntradayResponse::mutable_capital_flow_lines() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines)
  return &capital_flow_lines_;
}
inline const ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine& CapitalFlowIntradayResponse::_internal_capital_flow_lines(int index) const {
  return capital_flow_lines_.Get(index);
}
inline const ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine& CapitalFlowIntradayResponse::capital_flow_lines(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines)
  return _internal_capital_flow_lines(index);
}
inline ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* CapitalFlowIntradayResponse::_internal_add_capital_flow_lines() {
  return capital_flow_lines_.Add();
}
inline ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* CapitalFlowIntradayResponse::add_capital_flow_lines() {
  ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine* _add = _internal_add_capital_flow_lines();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >&
CapitalFlowIntradayResponse::capital_flow_lines() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines)
  return capital_flow_lines_;
}

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

// CapitalDistributionResponse_CapitalDistribution

// string large = 1 [json_name = "large"];
inline void CapitalDistributionResponse_CapitalDistribution::clear_large() {
  large_.ClearToEmpty();
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::large() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large)
  return _internal_large();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalDistributionResponse_CapitalDistribution::set_large(ArgT0&& arg0, ArgT... args) {
 
 large_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large)
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::mutable_large() {
  std::string* _s = _internal_mutable_large();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large)
  return _s;
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::_internal_large() const {
  return large_.Get();
}
inline void CapitalDistributionResponse_CapitalDistribution::_internal_set_large(const std::string& value) {
  
  large_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::_internal_mutable_large() {
  
  return large_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::release_large() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large)
  return large_.Release();
}
inline void CapitalDistributionResponse_CapitalDistribution::set_allocated_large(std::string* large) {
  if (large != nullptr) {
    
  } else {
    
  }
  large_.SetAllocated(large, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (large_.IsDefault()) {
    large_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large)
}

// string medium = 2 [json_name = "medium"];
inline void CapitalDistributionResponse_CapitalDistribution::clear_medium() {
  medium_.ClearToEmpty();
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::medium() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium)
  return _internal_medium();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalDistributionResponse_CapitalDistribution::set_medium(ArgT0&& arg0, ArgT... args) {
 
 medium_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium)
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::mutable_medium() {
  std::string* _s = _internal_mutable_medium();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium)
  return _s;
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::_internal_medium() const {
  return medium_.Get();
}
inline void CapitalDistributionResponse_CapitalDistribution::_internal_set_medium(const std::string& value) {
  
  medium_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::_internal_mutable_medium() {
  
  return medium_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::release_medium() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium)
  return medium_.Release();
}
inline void CapitalDistributionResponse_CapitalDistribution::set_allocated_medium(std::string* medium) {
  if (medium != nullptr) {
    
  } else {
    
  }
  medium_.SetAllocated(medium, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (medium_.IsDefault()) {
    medium_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium)
}

// string small = 3 [json_name = "small"];
inline void CapitalDistributionResponse_CapitalDistribution::clear_small() {
  small_.ClearToEmpty();
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::small() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small)
  return _internal_small();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalDistributionResponse_CapitalDistribution::set_small(ArgT0&& arg0, ArgT... args) {
 
 small_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small)
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::mutable_small() {
  std::string* _s = _internal_mutable_small();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small)
  return _s;
}
inline const std::string& CapitalDistributionResponse_CapitalDistribution::_internal_small() const {
  return small_.Get();
}
inline void CapitalDistributionResponse_CapitalDistribution::_internal_set_small(const std::string& value) {
  
  small_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::_internal_mutable_small() {
  
  return small_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse_CapitalDistribution::release_small() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small)
  return small_.Release();
}
inline void CapitalDistributionResponse_CapitalDistribution::set_allocated_small(std::string* small) {
  if (small != nullptr) {
    
  } else {
    
  }
  small_.SetAllocated(small, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (small_.IsDefault()) {
    small_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small)
}

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

// CapitalDistributionResponse

// string symbol = 1 [json_name = "symbol"];
inline void CapitalDistributionResponse::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& CapitalDistributionResponse::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CapitalDistributionResponse::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalDistributionResponse.symbol)
}
inline std::string* CapitalDistributionResponse::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.symbol)
  return _s;
}
inline const std::string& CapitalDistributionResponse::_internal_symbol() const {
  return symbol_.Get();
}
inline void CapitalDistributionResponse::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* CapitalDistributionResponse::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.symbol)
  return symbol_.Release();
}
inline void CapitalDistributionResponse::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.symbol)
}

// int64 timestamp = 2 [json_name = "timestamp"];
inline void CapitalDistributionResponse::clear_timestamp() {
  timestamp_ = int64_t{0};
}
inline int64_t CapitalDistributionResponse::_internal_timestamp() const {
  return timestamp_;
}
inline int64_t CapitalDistributionResponse::timestamp() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.timestamp)
  return _internal_timestamp();
}
inline void CapitalDistributionResponse::_internal_set_timestamp(int64_t value) {
  
  timestamp_ = value;
}
inline void CapitalDistributionResponse::set_timestamp(int64_t value) {
  _internal_set_timestamp(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.CapitalDistributionResponse.timestamp)
}

// .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
inline bool CapitalDistributionResponse::_internal_has_capital_in() const {
  return this != internal_default_instance() && capital_in_ != nullptr;
}
inline bool CapitalDistributionResponse::has_capital_in() const {
  return _internal_has_capital_in();
}
inline void CapitalDistributionResponse::clear_capital_in() {
  if (GetArenaForAllocation() == nullptr && capital_in_ != nullptr) {
    delete capital_in_;
  }
  capital_in_ = nullptr;
}
inline const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& CapitalDistributionResponse::_internal_capital_in() const {
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* p = capital_in_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution&>(
      ::longbridge::quote::v1::_CapitalDistributionResponse_CapitalDistribution_default_instance_);
}
inline const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& CapitalDistributionResponse::capital_in() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.capital_in)
  return _internal_capital_in();
}
inline void CapitalDistributionResponse::unsafe_arena_set_allocated_capital_in(
    ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_in) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(capital_in_);
  }
  capital_in_ = capital_in;
  if (capital_in) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.capital_in)
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::release_capital_in() {
  
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* temp = capital_in_;
  capital_in_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::unsafe_arena_release_capital_in() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.capital_in)
  
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* temp = capital_in_;
  capital_in_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::_internal_mutable_capital_in() {
  
  if (capital_in_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution>(GetArenaForAllocation());
    capital_in_ = p;
  }
  return capital_in_;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::mutable_capital_in() {
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* _msg = _internal_mutable_capital_in();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.capital_in)
  return _msg;
}
inline void CapitalDistributionResponse::set_allocated_capital_in(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_in) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete capital_in_;
  }
  if (capital_in) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(capital_in);
    if (message_arena != submessage_arena) {
      capital_in = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, capital_in, submessage_arena);
    }
    
  } else {
    
  }
  capital_in_ = capital_in;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.capital_in)
}

// .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
inline bool CapitalDistributionResponse::_internal_has_capital_out() const {
  return this != internal_default_instance() && capital_out_ != nullptr;
}
inline bool CapitalDistributionResponse::has_capital_out() const {
  return _internal_has_capital_out();
}
inline void CapitalDistributionResponse::clear_capital_out() {
  if (GetArenaForAllocation() == nullptr && capital_out_ != nullptr) {
    delete capital_out_;
  }
  capital_out_ = nullptr;
}
inline const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& CapitalDistributionResponse::_internal_capital_out() const {
  const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* p = capital_out_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution&>(
      ::longbridge::quote::v1::_CapitalDistributionResponse_CapitalDistribution_default_instance_);
}
inline const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& CapitalDistributionResponse::capital_out() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.CapitalDistributionResponse.capital_out)
  return _internal_capital_out();
}
inline void CapitalDistributionResponse::unsafe_arena_set_allocated_capital_out(
    ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_out) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(capital_out_);
  }
  capital_out_ = capital_out;
  if (capital_out) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.capital_out)
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::release_capital_out() {
  
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* temp = capital_out_;
  capital_out_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::unsafe_arena_release_capital_out() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.CapitalDistributionResponse.capital_out)
  
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* temp = capital_out_;
  capital_out_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::_internal_mutable_capital_out() {
  
  if (capital_out_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution>(GetArenaForAllocation());
    capital_out_ = p;
  }
  return capital_out_;
}
inline ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* CapitalDistributionResponse::mutable_capital_out() {
  ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* _msg = _internal_mutable_capital_out();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.CapitalDistributionResponse.capital_out)
  return _msg;
}
inline void CapitalDistributionResponse::set_allocated_capital_out(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution* capital_out) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete capital_out_;
  }
  if (capital_out) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(capital_out);
    if (message_arena != submessage_arena) {
      capital_out = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, capital_out, submessage_arena);
    }
    
  } else {
    
  }
  capital_out_ = capital_out;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.CapitalDistributionResponse.capital_out)
}

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

// SecurityCalcQuoteRequest

// repeated string symbols = 1 [json_name = "symbols"];
inline int SecurityCalcQuoteRequest::_internal_symbols_size() const {
  return symbols_.size();
}
inline int SecurityCalcQuoteRequest::symbols_size() const {
  return _internal_symbols_size();
}
inline void SecurityCalcQuoteRequest::clear_symbols() {
  symbols_.Clear();
}
inline std::string* SecurityCalcQuoteRequest::add_symbols() {
  std::string* _s = _internal_add_symbols();
  // @@protoc_insertion_point(field_add_mutable:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
  return _s;
}
inline const std::string& SecurityCalcQuoteRequest::_internal_symbols(int index) const {
  return symbols_.Get(index);
}
inline const std::string& SecurityCalcQuoteRequest::symbols(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
  return _internal_symbols(index);
}
inline std::string* SecurityCalcQuoteRequest::mutable_symbols(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
  return symbols_.Mutable(index);
}
inline void SecurityCalcQuoteRequest::set_symbols(int index, const std::string& value) {
  symbols_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::set_symbols(int index, std::string&& value) {
  symbols_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::set_symbols(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbols_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::set_symbols(int index, const char* value, size_t size) {
  symbols_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline std::string* SecurityCalcQuoteRequest::_internal_add_symbols() {
  return symbols_.Add();
}
inline void SecurityCalcQuoteRequest::add_symbols(const std::string& value) {
  symbols_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::add_symbols(std::string&& value) {
  symbols_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::add_symbols(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  symbols_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline void SecurityCalcQuoteRequest::add_symbols(const char* value, size_t size) {
  symbols_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SecurityCalcQuoteRequest::symbols() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
  return symbols_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
SecurityCalcQuoteRequest::mutable_symbols() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityCalcQuoteRequest.symbols)
  return &symbols_;
}

// repeated .longbridge.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
inline int SecurityCalcQuoteRequest::_internal_calc_index_size() const {
  return calc_index_.size();
}
inline int SecurityCalcQuoteRequest::calc_index_size() const {
  return _internal_calc_index_size();
}
inline void SecurityCalcQuoteRequest::clear_calc_index() {
  calc_index_.Clear();
}
inline ::longbridge::quote::v1::CalcIndex SecurityCalcQuoteRequest::_internal_calc_index(int index) const {
  return static_cast< ::longbridge::quote::v1::CalcIndex >(calc_index_.Get(index));
}
inline ::longbridge::quote::v1::CalcIndex SecurityCalcQuoteRequest::calc_index(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index)
  return _internal_calc_index(index);
}
inline void SecurityCalcQuoteRequest::set_calc_index(int index, ::longbridge::quote::v1::CalcIndex value) {
  calc_index_.Set(index, value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index)
}
inline void SecurityCalcQuoteRequest::_internal_add_calc_index(::longbridge::quote::v1::CalcIndex value) {
  calc_index_.Add(value);
}
inline void SecurityCalcQuoteRequest::add_calc_index(::longbridge::quote::v1::CalcIndex value) {
  _internal_add_calc_index(value);
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
SecurityCalcQuoteRequest::calc_index() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index)
  return calc_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SecurityCalcQuoteRequest::_internal_mutable_calc_index() {
  return &calc_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
SecurityCalcQuoteRequest::mutable_calc_index() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index)
  return _internal_mutable_calc_index();
}

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

// SecurityCalcIndex

// string symbol = 1 [json_name = "symbol"];
inline void SecurityCalcIndex::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.symbol)
}
inline std::string* SecurityCalcIndex::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.symbol)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityCalcIndex::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.symbol)
  return symbol_.Release();
}
inline void SecurityCalcIndex::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.symbol)
}

// string last_done = 2 [json_name = "lastDone"];
inline void SecurityCalcIndex::clear_last_done() {
  last_done_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::last_done() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.last_done)
  return _internal_last_done();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_last_done(ArgT0&& arg0, ArgT... args) {
 
 last_done_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.last_done)
}
inline std::string* SecurityCalcIndex::mutable_last_done() {
  std::string* _s = _internal_mutable_last_done();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.last_done)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_last_done() const {
  return last_done_.Get();
}
inline void SecurityCalcIndex::_internal_set_last_done(const std::string& value) {
  
  last_done_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_last_done() {
  
  return last_done_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_last_done() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.last_done)
  return last_done_.Release();
}
inline void SecurityCalcIndex::set_allocated_last_done(std::string* last_done) {
  if (last_done != nullptr) {
    
  } else {
    
  }
  last_done_.SetAllocated(last_done, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (last_done_.IsDefault()) {
    last_done_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.last_done)
}

// string change_val = 3 [json_name = "changeVal"];
inline void SecurityCalcIndex::clear_change_val() {
  change_val_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::change_val() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.change_val)
  return _internal_change_val();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_change_val(ArgT0&& arg0, ArgT... args) {
 
 change_val_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.change_val)
}
inline std::string* SecurityCalcIndex::mutable_change_val() {
  std::string* _s = _internal_mutable_change_val();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.change_val)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_change_val() const {
  return change_val_.Get();
}
inline void SecurityCalcIndex::_internal_set_change_val(const std::string& value) {
  
  change_val_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_change_val() {
  
  return change_val_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_change_val() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.change_val)
  return change_val_.Release();
}
inline void SecurityCalcIndex::set_allocated_change_val(std::string* change_val) {
  if (change_val != nullptr) {
    
  } else {
    
  }
  change_val_.SetAllocated(change_val, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (change_val_.IsDefault()) {
    change_val_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.change_val)
}

// string change_rate = 4 [json_name = "changeRate"];
inline void SecurityCalcIndex::clear_change_rate() {
  change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.change_rate)
  return _internal_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_change_rate(ArgT0&& arg0, ArgT... args) {
 
 change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.change_rate)
}
inline std::string* SecurityCalcIndex::mutable_change_rate() {
  std::string* _s = _internal_mutable_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_change_rate() const {
  return change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_change_rate(const std::string& value) {
  
  change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_change_rate() {
  
  return change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.change_rate)
  return change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_change_rate(std::string* change_rate) {
  if (change_rate != nullptr) {
    
  } else {
    
  }
  change_rate_.SetAllocated(change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (change_rate_.IsDefault()) {
    change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.change_rate)
}

// int64 volume = 5 [json_name = "volume"];
inline void SecurityCalcIndex::clear_volume() {
  volume_ = int64_t{0};
}
inline int64_t SecurityCalcIndex::_internal_volume() const {
  return volume_;
}
inline int64_t SecurityCalcIndex::volume() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.volume)
  return _internal_volume();
}
inline void SecurityCalcIndex::_internal_set_volume(int64_t value) {
  
  volume_ = value;
}
inline void SecurityCalcIndex::set_volume(int64_t value) {
  _internal_set_volume(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.volume)
}

// string turnover = 6 [json_name = "turnover"];
inline void SecurityCalcIndex::clear_turnover() {
  turnover_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::turnover() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.turnover)
  return _internal_turnover();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_turnover(ArgT0&& arg0, ArgT... args) {
 
 turnover_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.turnover)
}
inline std::string* SecurityCalcIndex::mutable_turnover() {
  std::string* _s = _internal_mutable_turnover();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.turnover)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_turnover() const {
  return turnover_.Get();
}
inline void SecurityCalcIndex::_internal_set_turnover(const std::string& value) {
  
  turnover_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_turnover() {
  
  return turnover_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_turnover() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.turnover)
  return turnover_.Release();
}
inline void SecurityCalcIndex::set_allocated_turnover(std::string* turnover) {
  if (turnover != nullptr) {
    
  } else {
    
  }
  turnover_.SetAllocated(turnover, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_.IsDefault()) {
    turnover_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.turnover)
}

// string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
inline void SecurityCalcIndex::clear_ytd_change_rate() {
  ytd_change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::ytd_change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate)
  return _internal_ytd_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_ytd_change_rate(ArgT0&& arg0, ArgT... args) {
 
 ytd_change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate)
}
inline std::string* SecurityCalcIndex::mutable_ytd_change_rate() {
  std::string* _s = _internal_mutable_ytd_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_ytd_change_rate() const {
  return ytd_change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_ytd_change_rate(const std::string& value) {
  
  ytd_change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_ytd_change_rate() {
  
  return ytd_change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_ytd_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate)
  return ytd_change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_ytd_change_rate(std::string* ytd_change_rate) {
  if (ytd_change_rate != nullptr) {
    
  } else {
    
  }
  ytd_change_rate_.SetAllocated(ytd_change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (ytd_change_rate_.IsDefault()) {
    ytd_change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate)
}

// string turnover_rate = 8 [json_name = "turnoverRate"];
inline void SecurityCalcIndex::clear_turnover_rate() {
  turnover_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::turnover_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.turnover_rate)
  return _internal_turnover_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_turnover_rate(ArgT0&& arg0, ArgT... args) {
 
 turnover_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.turnover_rate)
}
inline std::string* SecurityCalcIndex::mutable_turnover_rate() {
  std::string* _s = _internal_mutable_turnover_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.turnover_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_turnover_rate() const {
  return turnover_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_turnover_rate(const std::string& value) {
  
  turnover_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_turnover_rate() {
  
  return turnover_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_turnover_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.turnover_rate)
  return turnover_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_turnover_rate(std::string* turnover_rate) {
  if (turnover_rate != nullptr) {
    
  } else {
    
  }
  turnover_rate_.SetAllocated(turnover_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (turnover_rate_.IsDefault()) {
    turnover_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.turnover_rate)
}

// string total_market_value = 9 [json_name = "totalMarketValue"];
inline void SecurityCalcIndex::clear_total_market_value() {
  total_market_value_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::total_market_value() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.total_market_value)
  return _internal_total_market_value();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_total_market_value(ArgT0&& arg0, ArgT... args) {
 
 total_market_value_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.total_market_value)
}
inline std::string* SecurityCalcIndex::mutable_total_market_value() {
  std::string* _s = _internal_mutable_total_market_value();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.total_market_value)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_total_market_value() const {
  return total_market_value_.Get();
}
inline void SecurityCalcIndex::_internal_set_total_market_value(const std::string& value) {
  
  total_market_value_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_total_market_value() {
  
  return total_market_value_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_total_market_value() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.total_market_value)
  return total_market_value_.Release();
}
inline void SecurityCalcIndex::set_allocated_total_market_value(std::string* total_market_value) {
  if (total_market_value != nullptr) {
    
  } else {
    
  }
  total_market_value_.SetAllocated(total_market_value, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (total_market_value_.IsDefault()) {
    total_market_value_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.total_market_value)
}

// string capital_flow = 10 [json_name = "capitalFlow"];
inline void SecurityCalcIndex::clear_capital_flow() {
  capital_flow_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::capital_flow() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.capital_flow)
  return _internal_capital_flow();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_capital_flow(ArgT0&& arg0, ArgT... args) {
 
 capital_flow_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.capital_flow)
}
inline std::string* SecurityCalcIndex::mutable_capital_flow() {
  std::string* _s = _internal_mutable_capital_flow();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.capital_flow)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_capital_flow() const {
  return capital_flow_.Get();
}
inline void SecurityCalcIndex::_internal_set_capital_flow(const std::string& value) {
  
  capital_flow_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_capital_flow() {
  
  return capital_flow_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_capital_flow() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.capital_flow)
  return capital_flow_.Release();
}
inline void SecurityCalcIndex::set_allocated_capital_flow(std::string* capital_flow) {
  if (capital_flow != nullptr) {
    
  } else {
    
  }
  capital_flow_.SetAllocated(capital_flow, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (capital_flow_.IsDefault()) {
    capital_flow_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.capital_flow)
}

// string amplitude = 11 [json_name = "amplitude"];
inline void SecurityCalcIndex::clear_amplitude() {
  amplitude_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::amplitude() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.amplitude)
  return _internal_amplitude();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_amplitude(ArgT0&& arg0, ArgT... args) {
 
 amplitude_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.amplitude)
}
inline std::string* SecurityCalcIndex::mutable_amplitude() {
  std::string* _s = _internal_mutable_amplitude();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.amplitude)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_amplitude() const {
  return amplitude_.Get();
}
inline void SecurityCalcIndex::_internal_set_amplitude(const std::string& value) {
  
  amplitude_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_amplitude() {
  
  return amplitude_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_amplitude() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.amplitude)
  return amplitude_.Release();
}
inline void SecurityCalcIndex::set_allocated_amplitude(std::string* amplitude) {
  if (amplitude != nullptr) {
    
  } else {
    
  }
  amplitude_.SetAllocated(amplitude, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (amplitude_.IsDefault()) {
    amplitude_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.amplitude)
}

// string volume_ratio = 12 [json_name = "volumeRatio"];
inline void SecurityCalcIndex::clear_volume_ratio() {
  volume_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::volume_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.volume_ratio)
  return _internal_volume_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_volume_ratio(ArgT0&& arg0, ArgT... args) {
 
 volume_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.volume_ratio)
}
inline std::string* SecurityCalcIndex::mutable_volume_ratio() {
  std::string* _s = _internal_mutable_volume_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.volume_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_volume_ratio() const {
  return volume_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_volume_ratio(const std::string& value) {
  
  volume_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_volume_ratio() {
  
  return volume_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_volume_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.volume_ratio)
  return volume_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_volume_ratio(std::string* volume_ratio) {
  if (volume_ratio != nullptr) {
    
  } else {
    
  }
  volume_ratio_.SetAllocated(volume_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (volume_ratio_.IsDefault()) {
    volume_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.volume_ratio)
}

// string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
inline void SecurityCalcIndex::clear_pe_ttm_ratio() {
  pe_ttm_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::pe_ttm_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio)
  return _internal_pe_ttm_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_pe_ttm_ratio(ArgT0&& arg0, ArgT... args) {
 
 pe_ttm_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio)
}
inline std::string* SecurityCalcIndex::mutable_pe_ttm_ratio() {
  std::string* _s = _internal_mutable_pe_ttm_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_pe_ttm_ratio() const {
  return pe_ttm_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_pe_ttm_ratio(const std::string& value) {
  
  pe_ttm_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_pe_ttm_ratio() {
  
  return pe_ttm_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_pe_ttm_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio)
  return pe_ttm_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_pe_ttm_ratio(std::string* pe_ttm_ratio) {
  if (pe_ttm_ratio != nullptr) {
    
  } else {
    
  }
  pe_ttm_ratio_.SetAllocated(pe_ttm_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (pe_ttm_ratio_.IsDefault()) {
    pe_ttm_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio)
}

// string pb_ratio = 14 [json_name = "pbRatio"];
inline void SecurityCalcIndex::clear_pb_ratio() {
  pb_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::pb_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.pb_ratio)
  return _internal_pb_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_pb_ratio(ArgT0&& arg0, ArgT... args) {
 
 pb_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.pb_ratio)
}
inline std::string* SecurityCalcIndex::mutable_pb_ratio() {
  std::string* _s = _internal_mutable_pb_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.pb_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_pb_ratio() const {
  return pb_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_pb_ratio(const std::string& value) {
  
  pb_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_pb_ratio() {
  
  return pb_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_pb_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.pb_ratio)
  return pb_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_pb_ratio(std::string* pb_ratio) {
  if (pb_ratio != nullptr) {
    
  } else {
    
  }
  pb_ratio_.SetAllocated(pb_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (pb_ratio_.IsDefault()) {
    pb_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.pb_ratio)
}

// string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
inline void SecurityCalcIndex::clear_dividend_ratio_ttm() {
  dividend_ratio_ttm_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::dividend_ratio_ttm() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm)
  return _internal_dividend_ratio_ttm();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_dividend_ratio_ttm(ArgT0&& arg0, ArgT... args) {
 
 dividend_ratio_ttm_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm)
}
inline std::string* SecurityCalcIndex::mutable_dividend_ratio_ttm() {
  std::string* _s = _internal_mutable_dividend_ratio_ttm();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_dividend_ratio_ttm() const {
  return dividend_ratio_ttm_.Get();
}
inline void SecurityCalcIndex::_internal_set_dividend_ratio_ttm(const std::string& value) {
  
  dividend_ratio_ttm_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_dividend_ratio_ttm() {
  
  return dividend_ratio_ttm_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_dividend_ratio_ttm() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm)
  return dividend_ratio_ttm_.Release();
}
inline void SecurityCalcIndex::set_allocated_dividend_ratio_ttm(std::string* dividend_ratio_ttm) {
  if (dividend_ratio_ttm != nullptr) {
    
  } else {
    
  }
  dividend_ratio_ttm_.SetAllocated(dividend_ratio_ttm, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (dividend_ratio_ttm_.IsDefault()) {
    dividend_ratio_ttm_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm)
}

// string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
inline void SecurityCalcIndex::clear_five_day_change_rate() {
  five_day_change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::five_day_change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate)
  return _internal_five_day_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_five_day_change_rate(ArgT0&& arg0, ArgT... args) {
 
 five_day_change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate)
}
inline std::string* SecurityCalcIndex::mutable_five_day_change_rate() {
  std::string* _s = _internal_mutable_five_day_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_five_day_change_rate() const {
  return five_day_change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_five_day_change_rate(const std::string& value) {
  
  five_day_change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_five_day_change_rate() {
  
  return five_day_change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_five_day_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate)
  return five_day_change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_five_day_change_rate(std::string* five_day_change_rate) {
  if (five_day_change_rate != nullptr) {
    
  } else {
    
  }
  five_day_change_rate_.SetAllocated(five_day_change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (five_day_change_rate_.IsDefault()) {
    five_day_change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate)
}

// string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
inline void SecurityCalcIndex::clear_ten_day_change_rate() {
  ten_day_change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::ten_day_change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate)
  return _internal_ten_day_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_ten_day_change_rate(ArgT0&& arg0, ArgT... args) {
 
 ten_day_change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate)
}
inline std::string* SecurityCalcIndex::mutable_ten_day_change_rate() {
  std::string* _s = _internal_mutable_ten_day_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_ten_day_change_rate() const {
  return ten_day_change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_ten_day_change_rate(const std::string& value) {
  
  ten_day_change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_ten_day_change_rate() {
  
  return ten_day_change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_ten_day_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate)
  return ten_day_change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_ten_day_change_rate(std::string* ten_day_change_rate) {
  if (ten_day_change_rate != nullptr) {
    
  } else {
    
  }
  ten_day_change_rate_.SetAllocated(ten_day_change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (ten_day_change_rate_.IsDefault()) {
    ten_day_change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate)
}

// string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
inline void SecurityCalcIndex::clear_half_year_change_rate() {
  half_year_change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::half_year_change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate)
  return _internal_half_year_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_half_year_change_rate(ArgT0&& arg0, ArgT... args) {
 
 half_year_change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate)
}
inline std::string* SecurityCalcIndex::mutable_half_year_change_rate() {
  std::string* _s = _internal_mutable_half_year_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_half_year_change_rate() const {
  return half_year_change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_half_year_change_rate(const std::string& value) {
  
  half_year_change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_half_year_change_rate() {
  
  return half_year_change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_half_year_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate)
  return half_year_change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_half_year_change_rate(std::string* half_year_change_rate) {
  if (half_year_change_rate != nullptr) {
    
  } else {
    
  }
  half_year_change_rate_.SetAllocated(half_year_change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (half_year_change_rate_.IsDefault()) {
    half_year_change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate)
}

// string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
inline void SecurityCalcIndex::clear_five_minutes_change_rate() {
  five_minutes_change_rate_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::five_minutes_change_rate() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate)
  return _internal_five_minutes_change_rate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_five_minutes_change_rate(ArgT0&& arg0, ArgT... args) {
 
 five_minutes_change_rate_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate)
}
inline std::string* SecurityCalcIndex::mutable_five_minutes_change_rate() {
  std::string* _s = _internal_mutable_five_minutes_change_rate();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_five_minutes_change_rate() const {
  return five_minutes_change_rate_.Get();
}
inline void SecurityCalcIndex::_internal_set_five_minutes_change_rate(const std::string& value) {
  
  five_minutes_change_rate_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_five_minutes_change_rate() {
  
  return five_minutes_change_rate_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_five_minutes_change_rate() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate)
  return five_minutes_change_rate_.Release();
}
inline void SecurityCalcIndex::set_allocated_five_minutes_change_rate(std::string* five_minutes_change_rate) {
  if (five_minutes_change_rate != nullptr) {
    
  } else {
    
  }
  five_minutes_change_rate_.SetAllocated(five_minutes_change_rate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (five_minutes_change_rate_.IsDefault()) {
    five_minutes_change_rate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate)
}

// string expiry_date = 20 [json_name = "expiryDate"];
inline void SecurityCalcIndex::clear_expiry_date() {
  expiry_date_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::expiry_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.expiry_date)
  return _internal_expiry_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_expiry_date(ArgT0&& arg0, ArgT... args) {
 
 expiry_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.expiry_date)
}
inline std::string* SecurityCalcIndex::mutable_expiry_date() {
  std::string* _s = _internal_mutable_expiry_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.expiry_date)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_expiry_date() const {
  return expiry_date_.Get();
}
inline void SecurityCalcIndex::_internal_set_expiry_date(const std::string& value) {
  
  expiry_date_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_expiry_date() {
  
  return expiry_date_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_expiry_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.expiry_date)
  return expiry_date_.Release();
}
inline void SecurityCalcIndex::set_allocated_expiry_date(std::string* expiry_date) {
  if (expiry_date != nullptr) {
    
  } else {
    
  }
  expiry_date_.SetAllocated(expiry_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (expiry_date_.IsDefault()) {
    expiry_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.expiry_date)
}

// string strike_price = 21 [json_name = "strikePrice"];
inline void SecurityCalcIndex::clear_strike_price() {
  strike_price_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.strike_price)
  return _internal_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_strike_price(ArgT0&& arg0, ArgT... args) {
 
 strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.strike_price)
}
inline std::string* SecurityCalcIndex::mutable_strike_price() {
  std::string* _s = _internal_mutable_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.strike_price)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_strike_price() const {
  return strike_price_.Get();
}
inline void SecurityCalcIndex::_internal_set_strike_price(const std::string& value) {
  
  strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_strike_price() {
  
  return strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.strike_price)
  return strike_price_.Release();
}
inline void SecurityCalcIndex::set_allocated_strike_price(std::string* strike_price) {
  if (strike_price != nullptr) {
    
  } else {
    
  }
  strike_price_.SetAllocated(strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (strike_price_.IsDefault()) {
    strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.strike_price)
}

// string upper_strike_price = 22 [json_name = "upperStrikePrice"];
inline void SecurityCalcIndex::clear_upper_strike_price() {
  upper_strike_price_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::upper_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.upper_strike_price)
  return _internal_upper_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_upper_strike_price(ArgT0&& arg0, ArgT... args) {
 
 upper_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.upper_strike_price)
}
inline std::string* SecurityCalcIndex::mutable_upper_strike_price() {
  std::string* _s = _internal_mutable_upper_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.upper_strike_price)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_upper_strike_price() const {
  return upper_strike_price_.Get();
}
inline void SecurityCalcIndex::_internal_set_upper_strike_price(const std::string& value) {
  
  upper_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_upper_strike_price() {
  
  return upper_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_upper_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.upper_strike_price)
  return upper_strike_price_.Release();
}
inline void SecurityCalcIndex::set_allocated_upper_strike_price(std::string* upper_strike_price) {
  if (upper_strike_price != nullptr) {
    
  } else {
    
  }
  upper_strike_price_.SetAllocated(upper_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (upper_strike_price_.IsDefault()) {
    upper_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.upper_strike_price)
}

// string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
inline void SecurityCalcIndex::clear_lower_strike_price() {
  lower_strike_price_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::lower_strike_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.lower_strike_price)
  return _internal_lower_strike_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_lower_strike_price(ArgT0&& arg0, ArgT... args) {
 
 lower_strike_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.lower_strike_price)
}
inline std::string* SecurityCalcIndex::mutable_lower_strike_price() {
  std::string* _s = _internal_mutable_lower_strike_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.lower_strike_price)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_lower_strike_price() const {
  return lower_strike_price_.Get();
}
inline void SecurityCalcIndex::_internal_set_lower_strike_price(const std::string& value) {
  
  lower_strike_price_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_lower_strike_price() {
  
  return lower_strike_price_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_lower_strike_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.lower_strike_price)
  return lower_strike_price_.Release();
}
inline void SecurityCalcIndex::set_allocated_lower_strike_price(std::string* lower_strike_price) {
  if (lower_strike_price != nullptr) {
    
  } else {
    
  }
  lower_strike_price_.SetAllocated(lower_strike_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (lower_strike_price_.IsDefault()) {
    lower_strike_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.lower_strike_price)
}

// int64 outstanding_qty = 24 [json_name = "outstandingQty"];
inline void SecurityCalcIndex::clear_outstanding_qty() {
  outstanding_qty_ = int64_t{0};
}
inline int64_t SecurityCalcIndex::_internal_outstanding_qty() const {
  return outstanding_qty_;
}
inline int64_t SecurityCalcIndex::outstanding_qty() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.outstanding_qty)
  return _internal_outstanding_qty();
}
inline void SecurityCalcIndex::_internal_set_outstanding_qty(int64_t value) {
  
  outstanding_qty_ = value;
}
inline void SecurityCalcIndex::set_outstanding_qty(int64_t value) {
  _internal_set_outstanding_qty(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.outstanding_qty)
}

// string outstanding_ratio = 25 [json_name = "outstandingRatio"];
inline void SecurityCalcIndex::clear_outstanding_ratio() {
  outstanding_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::outstanding_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio)
  return _internal_outstanding_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_outstanding_ratio(ArgT0&& arg0, ArgT... args) {
 
 outstanding_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio)
}
inline std::string* SecurityCalcIndex::mutable_outstanding_ratio() {
  std::string* _s = _internal_mutable_outstanding_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_outstanding_ratio() const {
  return outstanding_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_outstanding_ratio(const std::string& value) {
  
  outstanding_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_outstanding_ratio() {
  
  return outstanding_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_outstanding_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio)
  return outstanding_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_outstanding_ratio(std::string* outstanding_ratio) {
  if (outstanding_ratio != nullptr) {
    
  } else {
    
  }
  outstanding_ratio_.SetAllocated(outstanding_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (outstanding_ratio_.IsDefault()) {
    outstanding_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio)
}

// string premium = 26 [json_name = "premium"];
inline void SecurityCalcIndex::clear_premium() {
  premium_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::premium() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.premium)
  return _internal_premium();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_premium(ArgT0&& arg0, ArgT... args) {
 
 premium_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.premium)
}
inline std::string* SecurityCalcIndex::mutable_premium() {
  std::string* _s = _internal_mutable_premium();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.premium)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_premium() const {
  return premium_.Get();
}
inline void SecurityCalcIndex::_internal_set_premium(const std::string& value) {
  
  premium_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_premium() {
  
  return premium_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_premium() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.premium)
  return premium_.Release();
}
inline void SecurityCalcIndex::set_allocated_premium(std::string* premium) {
  if (premium != nullptr) {
    
  } else {
    
  }
  premium_.SetAllocated(premium, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (premium_.IsDefault()) {
    premium_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.premium)
}

// string itm_otm = 27 [json_name = "itmOtm"];
inline void SecurityCalcIndex::clear_itm_otm() {
  itm_otm_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::itm_otm() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.itm_otm)
  return _internal_itm_otm();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_itm_otm(ArgT0&& arg0, ArgT... args) {
 
 itm_otm_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.itm_otm)
}
inline std::string* SecurityCalcIndex::mutable_itm_otm() {
  std::string* _s = _internal_mutable_itm_otm();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.itm_otm)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_itm_otm() const {
  return itm_otm_.Get();
}
inline void SecurityCalcIndex::_internal_set_itm_otm(const std::string& value) {
  
  itm_otm_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_itm_otm() {
  
  return itm_otm_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_itm_otm() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.itm_otm)
  return itm_otm_.Release();
}
inline void SecurityCalcIndex::set_allocated_itm_otm(std::string* itm_otm) {
  if (itm_otm != nullptr) {
    
  } else {
    
  }
  itm_otm_.SetAllocated(itm_otm, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (itm_otm_.IsDefault()) {
    itm_otm_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.itm_otm)
}

// string implied_volatility = 28 [json_name = "impliedVolatility"];
inline void SecurityCalcIndex::clear_implied_volatility() {
  implied_volatility_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::implied_volatility() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.implied_volatility)
  return _internal_implied_volatility();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_implied_volatility(ArgT0&& arg0, ArgT... args) {
 
 implied_volatility_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.implied_volatility)
}
inline std::string* SecurityCalcIndex::mutable_implied_volatility() {
  std::string* _s = _internal_mutable_implied_volatility();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.implied_volatility)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_implied_volatility() const {
  return implied_volatility_.Get();
}
inline void SecurityCalcIndex::_internal_set_implied_volatility(const std::string& value) {
  
  implied_volatility_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_implied_volatility() {
  
  return implied_volatility_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_implied_volatility() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.implied_volatility)
  return implied_volatility_.Release();
}
inline void SecurityCalcIndex::set_allocated_implied_volatility(std::string* implied_volatility) {
  if (implied_volatility != nullptr) {
    
  } else {
    
  }
  implied_volatility_.SetAllocated(implied_volatility, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (implied_volatility_.IsDefault()) {
    implied_volatility_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.implied_volatility)
}

// string warrant_delta = 29 [json_name = "warrantDelta"];
inline void SecurityCalcIndex::clear_warrant_delta() {
  warrant_delta_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::warrant_delta() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.warrant_delta)
  return _internal_warrant_delta();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_warrant_delta(ArgT0&& arg0, ArgT... args) {
 
 warrant_delta_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.warrant_delta)
}
inline std::string* SecurityCalcIndex::mutable_warrant_delta() {
  std::string* _s = _internal_mutable_warrant_delta();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.warrant_delta)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_warrant_delta() const {
  return warrant_delta_.Get();
}
inline void SecurityCalcIndex::_internal_set_warrant_delta(const std::string& value) {
  
  warrant_delta_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_warrant_delta() {
  
  return warrant_delta_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_warrant_delta() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.warrant_delta)
  return warrant_delta_.Release();
}
inline void SecurityCalcIndex::set_allocated_warrant_delta(std::string* warrant_delta) {
  if (warrant_delta != nullptr) {
    
  } else {
    
  }
  warrant_delta_.SetAllocated(warrant_delta, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (warrant_delta_.IsDefault()) {
    warrant_delta_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.warrant_delta)
}

// string call_price = 30 [json_name = "callPrice"];
inline void SecurityCalcIndex::clear_call_price() {
  call_price_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::call_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.call_price)
  return _internal_call_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_call_price(ArgT0&& arg0, ArgT... args) {
 
 call_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.call_price)
}
inline std::string* SecurityCalcIndex::mutable_call_price() {
  std::string* _s = _internal_mutable_call_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.call_price)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_call_price() const {
  return call_price_.Get();
}
inline void SecurityCalcIndex::_internal_set_call_price(const std::string& value) {
  
  call_price_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_call_price() {
  
  return call_price_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_call_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.call_price)
  return call_price_.Release();
}
inline void SecurityCalcIndex::set_allocated_call_price(std::string* call_price) {
  if (call_price != nullptr) {
    
  } else {
    
  }
  call_price_.SetAllocated(call_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (call_price_.IsDefault()) {
    call_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.call_price)
}

// string to_call_price = 31 [json_name = "toCallPrice"];
inline void SecurityCalcIndex::clear_to_call_price() {
  to_call_price_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::to_call_price() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.to_call_price)
  return _internal_to_call_price();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_to_call_price(ArgT0&& arg0, ArgT... args) {
 
 to_call_price_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.to_call_price)
}
inline std::string* SecurityCalcIndex::mutable_to_call_price() {
  std::string* _s = _internal_mutable_to_call_price();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.to_call_price)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_to_call_price() const {
  return to_call_price_.Get();
}
inline void SecurityCalcIndex::_internal_set_to_call_price(const std::string& value) {
  
  to_call_price_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_to_call_price() {
  
  return to_call_price_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_to_call_price() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.to_call_price)
  return to_call_price_.Release();
}
inline void SecurityCalcIndex::set_allocated_to_call_price(std::string* to_call_price) {
  if (to_call_price != nullptr) {
    
  } else {
    
  }
  to_call_price_.SetAllocated(to_call_price, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (to_call_price_.IsDefault()) {
    to_call_price_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.to_call_price)
}

// string effective_leverage = 32 [json_name = "effectiveLeverage"];
inline void SecurityCalcIndex::clear_effective_leverage() {
  effective_leverage_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::effective_leverage() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.effective_leverage)
  return _internal_effective_leverage();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_effective_leverage(ArgT0&& arg0, ArgT... args) {
 
 effective_leverage_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.effective_leverage)
}
inline std::string* SecurityCalcIndex::mutable_effective_leverage() {
  std::string* _s = _internal_mutable_effective_leverage();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.effective_leverage)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_effective_leverage() const {
  return effective_leverage_.Get();
}
inline void SecurityCalcIndex::_internal_set_effective_leverage(const std::string& value) {
  
  effective_leverage_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_effective_leverage() {
  
  return effective_leverage_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_effective_leverage() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.effective_leverage)
  return effective_leverage_.Release();
}
inline void SecurityCalcIndex::set_allocated_effective_leverage(std::string* effective_leverage) {
  if (effective_leverage != nullptr) {
    
  } else {
    
  }
  effective_leverage_.SetAllocated(effective_leverage, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (effective_leverage_.IsDefault()) {
    effective_leverage_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.effective_leverage)
}

// string leverage_ratio = 33 [json_name = "leverageRatio"];
inline void SecurityCalcIndex::clear_leverage_ratio() {
  leverage_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::leverage_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.leverage_ratio)
  return _internal_leverage_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_leverage_ratio(ArgT0&& arg0, ArgT... args) {
 
 leverage_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.leverage_ratio)
}
inline std::string* SecurityCalcIndex::mutable_leverage_ratio() {
  std::string* _s = _internal_mutable_leverage_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.leverage_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_leverage_ratio() const {
  return leverage_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_leverage_ratio(const std::string& value) {
  
  leverage_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_leverage_ratio() {
  
  return leverage_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_leverage_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.leverage_ratio)
  return leverage_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_leverage_ratio(std::string* leverage_ratio) {
  if (leverage_ratio != nullptr) {
    
  } else {
    
  }
  leverage_ratio_.SetAllocated(leverage_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (leverage_ratio_.IsDefault()) {
    leverage_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.leverage_ratio)
}

// string conversion_ratio = 34 [json_name = "conversionRatio"];
inline void SecurityCalcIndex::clear_conversion_ratio() {
  conversion_ratio_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::conversion_ratio() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.conversion_ratio)
  return _internal_conversion_ratio();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_conversion_ratio(ArgT0&& arg0, ArgT... args) {
 
 conversion_ratio_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.conversion_ratio)
}
inline std::string* SecurityCalcIndex::mutable_conversion_ratio() {
  std::string* _s = _internal_mutable_conversion_ratio();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.conversion_ratio)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_conversion_ratio() const {
  return conversion_ratio_.Get();
}
inline void SecurityCalcIndex::_internal_set_conversion_ratio(const std::string& value) {
  
  conversion_ratio_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_conversion_ratio() {
  
  return conversion_ratio_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_conversion_ratio() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.conversion_ratio)
  return conversion_ratio_.Release();
}
inline void SecurityCalcIndex::set_allocated_conversion_ratio(std::string* conversion_ratio) {
  if (conversion_ratio != nullptr) {
    
  } else {
    
  }
  conversion_ratio_.SetAllocated(conversion_ratio, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (conversion_ratio_.IsDefault()) {
    conversion_ratio_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.conversion_ratio)
}

// string balance_point = 35 [json_name = "balancePoint"];
inline void SecurityCalcIndex::clear_balance_point() {
  balance_point_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::balance_point() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.balance_point)
  return _internal_balance_point();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_balance_point(ArgT0&& arg0, ArgT... args) {
 
 balance_point_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.balance_point)
}
inline std::string* SecurityCalcIndex::mutable_balance_point() {
  std::string* _s = _internal_mutable_balance_point();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.balance_point)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_balance_point() const {
  return balance_point_.Get();
}
inline void SecurityCalcIndex::_internal_set_balance_point(const std::string& value) {
  
  balance_point_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_balance_point() {
  
  return balance_point_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_balance_point() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.balance_point)
  return balance_point_.Release();
}
inline void SecurityCalcIndex::set_allocated_balance_point(std::string* balance_point) {
  if (balance_point != nullptr) {
    
  } else {
    
  }
  balance_point_.SetAllocated(balance_point, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (balance_point_.IsDefault()) {
    balance_point_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.balance_point)
}

// int64 open_interest = 36 [json_name = "openInterest"];
inline void SecurityCalcIndex::clear_open_interest() {
  open_interest_ = int64_t{0};
}
inline int64_t SecurityCalcIndex::_internal_open_interest() const {
  return open_interest_;
}
inline int64_t SecurityCalcIndex::open_interest() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.open_interest)
  return _internal_open_interest();
}
inline void SecurityCalcIndex::_internal_set_open_interest(int64_t value) {
  
  open_interest_ = value;
}
inline void SecurityCalcIndex::set_open_interest(int64_t value) {
  _internal_set_open_interest(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.open_interest)
}

// string delta = 37 [json_name = "delta"];
inline void SecurityCalcIndex::clear_delta() {
  delta_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::delta() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.delta)
  return _internal_delta();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_delta(ArgT0&& arg0, ArgT... args) {
 
 delta_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.delta)
}
inline std::string* SecurityCalcIndex::mutable_delta() {
  std::string* _s = _internal_mutable_delta();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.delta)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_delta() const {
  return delta_.Get();
}
inline void SecurityCalcIndex::_internal_set_delta(const std::string& value) {
  
  delta_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_delta() {
  
  return delta_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_delta() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.delta)
  return delta_.Release();
}
inline void SecurityCalcIndex::set_allocated_delta(std::string* delta) {
  if (delta != nullptr) {
    
  } else {
    
  }
  delta_.SetAllocated(delta, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (delta_.IsDefault()) {
    delta_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.delta)
}

// string gamma = 38 [json_name = "gamma"];
inline void SecurityCalcIndex::clear_gamma() {
  gamma_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::gamma() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.gamma)
  return _internal_gamma();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_gamma(ArgT0&& arg0, ArgT... args) {
 
 gamma_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.gamma)
}
inline std::string* SecurityCalcIndex::mutable_gamma() {
  std::string* _s = _internal_mutable_gamma();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.gamma)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_gamma() const {
  return gamma_.Get();
}
inline void SecurityCalcIndex::_internal_set_gamma(const std::string& value) {
  
  gamma_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_gamma() {
  
  return gamma_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_gamma() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.gamma)
  return gamma_.Release();
}
inline void SecurityCalcIndex::set_allocated_gamma(std::string* gamma) {
  if (gamma != nullptr) {
    
  } else {
    
  }
  gamma_.SetAllocated(gamma, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (gamma_.IsDefault()) {
    gamma_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.gamma)
}

// string theta = 39 [json_name = "theta"];
inline void SecurityCalcIndex::clear_theta() {
  theta_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::theta() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.theta)
  return _internal_theta();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_theta(ArgT0&& arg0, ArgT... args) {
 
 theta_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.theta)
}
inline std::string* SecurityCalcIndex::mutable_theta() {
  std::string* _s = _internal_mutable_theta();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.theta)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_theta() const {
  return theta_.Get();
}
inline void SecurityCalcIndex::_internal_set_theta(const std::string& value) {
  
  theta_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_theta() {
  
  return theta_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_theta() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.theta)
  return theta_.Release();
}
inline void SecurityCalcIndex::set_allocated_theta(std::string* theta) {
  if (theta != nullptr) {
    
  } else {
    
  }
  theta_.SetAllocated(theta, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (theta_.IsDefault()) {
    theta_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.theta)
}

// string vega = 40 [json_name = "vega"];
inline void SecurityCalcIndex::clear_vega() {
  vega_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::vega() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.vega)
  return _internal_vega();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_vega(ArgT0&& arg0, ArgT... args) {
 
 vega_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.vega)
}
inline std::string* SecurityCalcIndex::mutable_vega() {
  std::string* _s = _internal_mutable_vega();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.vega)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_vega() const {
  return vega_.Get();
}
inline void SecurityCalcIndex::_internal_set_vega(const std::string& value) {
  
  vega_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_vega() {
  
  return vega_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_vega() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.vega)
  return vega_.Release();
}
inline void SecurityCalcIndex::set_allocated_vega(std::string* vega) {
  if (vega != nullptr) {
    
  } else {
    
  }
  vega_.SetAllocated(vega, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (vega_.IsDefault()) {
    vega_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.vega)
}

// string rho = 41 [json_name = "rho"];
inline void SecurityCalcIndex::clear_rho() {
  rho_.ClearToEmpty();
}
inline const std::string& SecurityCalcIndex::rho() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcIndex.rho)
  return _internal_rho();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityCalcIndex::set_rho(ArgT0&& arg0, ArgT... args) {
 
 rho_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityCalcIndex.rho)
}
inline std::string* SecurityCalcIndex::mutable_rho() {
  std::string* _s = _internal_mutable_rho();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcIndex.rho)
  return _s;
}
inline const std::string& SecurityCalcIndex::_internal_rho() const {
  return rho_.Get();
}
inline void SecurityCalcIndex::_internal_set_rho(const std::string& value) {
  
  rho_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::_internal_mutable_rho() {
  
  return rho_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityCalcIndex::release_rho() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityCalcIndex.rho)
  return rho_.Release();
}
inline void SecurityCalcIndex::set_allocated_rho(std::string* rho) {
  if (rho != nullptr) {
    
  } else {
    
  }
  rho_.SetAllocated(rho, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (rho_.IsDefault()) {
    rho_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityCalcIndex.rho)
}

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

// SecurityCalcQuoteResponse

// repeated .longbridge.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
inline int SecurityCalcQuoteResponse::_internal_security_calc_index_size() const {
  return security_calc_index_.size();
}
inline int SecurityCalcQuoteResponse::security_calc_index_size() const {
  return _internal_security_calc_index_size();
}
inline void SecurityCalcQuoteResponse::clear_security_calc_index() {
  security_calc_index_.Clear();
}
inline ::longbridge::quote::v1::SecurityCalcIndex* SecurityCalcQuoteResponse::mutable_security_calc_index(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index)
  return security_calc_index_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityCalcIndex >*
SecurityCalcQuoteResponse::mutable_security_calc_index() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index)
  return &security_calc_index_;
}
inline const ::longbridge::quote::v1::SecurityCalcIndex& SecurityCalcQuoteResponse::_internal_security_calc_index(int index) const {
  return security_calc_index_.Get(index);
}
inline const ::longbridge::quote::v1::SecurityCalcIndex& SecurityCalcQuoteResponse::security_calc_index(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index)
  return _internal_security_calc_index(index);
}
inline ::longbridge::quote::v1::SecurityCalcIndex* SecurityCalcQuoteResponse::_internal_add_security_calc_index() {
  return security_calc_index_.Add();
}
inline ::longbridge::quote::v1::SecurityCalcIndex* SecurityCalcQuoteResponse::add_security_calc_index() {
  ::longbridge::quote::v1::SecurityCalcIndex* _add = _internal_add_security_calc_index();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::SecurityCalcIndex >&
SecurityCalcQuoteResponse::security_calc_index() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index)
  return security_calc_index_;
}

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

// SecurityHistoryCandlestickRequest_OffsetQuery

// .longbridge.quote.v1.Direction direction = 1 [json_name = "direction"];
inline void SecurityHistoryCandlestickRequest_OffsetQuery::clear_direction() {
  direction_ = 0;
}
inline ::longbridge::quote::v1::Direction SecurityHistoryCandlestickRequest_OffsetQuery::_internal_direction() const {
  return static_cast< ::longbridge::quote::v1::Direction >(direction_);
}
inline ::longbridge::quote::v1::Direction SecurityHistoryCandlestickRequest_OffsetQuery::direction() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.direction)
  return _internal_direction();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::_internal_set_direction(::longbridge::quote::v1::Direction value) {
  
  direction_ = value;
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::set_direction(::longbridge::quote::v1::Direction value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.direction)
}

// string date = 2 [json_name = "date"];
inline void SecurityHistoryCandlestickRequest_OffsetQuery::clear_date() {
  date_.ClearToEmpty();
}
inline const std::string& SecurityHistoryCandlestickRequest_OffsetQuery::date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date)
  return _internal_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityHistoryCandlestickRequest_OffsetQuery::set_date(ArgT0&& arg0, ArgT... args) {
 
 date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date)
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::mutable_date() {
  std::string* _s = _internal_mutable_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date)
  return _s;
}
inline const std::string& SecurityHistoryCandlestickRequest_OffsetQuery::_internal_date() const {
  return date_.Get();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::_internal_set_date(const std::string& value) {
  
  date_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::_internal_mutable_date() {
  
  return date_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::release_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date)
  return date_.Release();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::set_allocated_date(std::string* date) {
  if (date != nullptr) {
    
  } else {
    
  }
  date_.SetAllocated(date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (date_.IsDefault()) {
    date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date)
}

// string minute = 3 [json_name = "minute"];
inline void SecurityHistoryCandlestickRequest_OffsetQuery::clear_minute() {
  minute_.ClearToEmpty();
}
inline const std::string& SecurityHistoryCandlestickRequest_OffsetQuery::minute() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute)
  return _internal_minute();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityHistoryCandlestickRequest_OffsetQuery::set_minute(ArgT0&& arg0, ArgT... args) {
 
 minute_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute)
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::mutable_minute() {
  std::string* _s = _internal_mutable_minute();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute)
  return _s;
}
inline const std::string& SecurityHistoryCandlestickRequest_OffsetQuery::_internal_minute() const {
  return minute_.Get();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::_internal_set_minute(const std::string& value) {
  
  minute_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::_internal_mutable_minute() {
  
  return minute_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_OffsetQuery::release_minute() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute)
  return minute_.Release();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::set_allocated_minute(std::string* minute) {
  if (minute != nullptr) {
    
  } else {
    
  }
  minute_.SetAllocated(minute, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (minute_.IsDefault()) {
    minute_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute)
}

// int32 count = 4 [json_name = "count"];
inline void SecurityHistoryCandlestickRequest_OffsetQuery::clear_count() {
  count_ = 0;
}
inline int32_t SecurityHistoryCandlestickRequest_OffsetQuery::_internal_count() const {
  return count_;
}
inline int32_t SecurityHistoryCandlestickRequest_OffsetQuery::count() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.count)
  return _internal_count();
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::_internal_set_count(int32_t value) {
  
  count_ = value;
}
inline void SecurityHistoryCandlestickRequest_OffsetQuery::set_count(int32_t value) {
  _internal_set_count(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.count)
}

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

// SecurityHistoryCandlestickRequest_DateQuery

// string start_date = 1 [json_name = "startDate"];
inline void SecurityHistoryCandlestickRequest_DateQuery::clear_start_date() {
  start_date_.ClearToEmpty();
}
inline const std::string& SecurityHistoryCandlestickRequest_DateQuery::start_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date)
  return _internal_start_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityHistoryCandlestickRequest_DateQuery::set_start_date(ArgT0&& arg0, ArgT... args) {
 
 start_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date)
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::mutable_start_date() {
  std::string* _s = _internal_mutable_start_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date)
  return _s;
}
inline const std::string& SecurityHistoryCandlestickRequest_DateQuery::_internal_start_date() const {
  return start_date_.Get();
}
inline void SecurityHistoryCandlestickRequest_DateQuery::_internal_set_start_date(const std::string& value) {
  
  start_date_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::_internal_mutable_start_date() {
  
  return start_date_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::release_start_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date)
  return start_date_.Release();
}
inline void SecurityHistoryCandlestickRequest_DateQuery::set_allocated_start_date(std::string* start_date) {
  if (start_date != nullptr) {
    
  } else {
    
  }
  start_date_.SetAllocated(start_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (start_date_.IsDefault()) {
    start_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date)
}

// string end_date = 2 [json_name = "endDate"];
inline void SecurityHistoryCandlestickRequest_DateQuery::clear_end_date() {
  end_date_.ClearToEmpty();
}
inline const std::string& SecurityHistoryCandlestickRequest_DateQuery::end_date() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date)
  return _internal_end_date();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityHistoryCandlestickRequest_DateQuery::set_end_date(ArgT0&& arg0, ArgT... args) {
 
 end_date_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date)
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::mutable_end_date() {
  std::string* _s = _internal_mutable_end_date();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date)
  return _s;
}
inline const std::string& SecurityHistoryCandlestickRequest_DateQuery::_internal_end_date() const {
  return end_date_.Get();
}
inline void SecurityHistoryCandlestickRequest_DateQuery::_internal_set_end_date(const std::string& value) {
  
  end_date_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::_internal_mutable_end_date() {
  
  return end_date_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest_DateQuery::release_end_date() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date)
  return end_date_.Release();
}
inline void SecurityHistoryCandlestickRequest_DateQuery::set_allocated_end_date(std::string* end_date) {
  if (end_date != nullptr) {
    
  } else {
    
  }
  end_date_.SetAllocated(end_date, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (end_date_.IsDefault()) {
    end_date_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date)
}

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

// SecurityHistoryCandlestickRequest

// string symbol = 1 [json_name = "symbol"];
inline void SecurityHistoryCandlestickRequest::clear_symbol() {
  symbol_.ClearToEmpty();
}
inline const std::string& SecurityHistoryCandlestickRequest::symbol() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol)
  return _internal_symbol();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SecurityHistoryCandlestickRequest::set_symbol(ArgT0&& arg0, ArgT... args) {
 
 symbol_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol)
}
inline std::string* SecurityHistoryCandlestickRequest::mutable_symbol() {
  std::string* _s = _internal_mutable_symbol();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol)
  return _s;
}
inline const std::string& SecurityHistoryCandlestickRequest::_internal_symbol() const {
  return symbol_.Get();
}
inline void SecurityHistoryCandlestickRequest::_internal_set_symbol(const std::string& value) {
  
  symbol_.Set(value, GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest::_internal_mutable_symbol() {
  
  return symbol_.Mutable(GetArenaForAllocation());
}
inline std::string* SecurityHistoryCandlestickRequest::release_symbol() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol)
  return symbol_.Release();
}
inline void SecurityHistoryCandlestickRequest::set_allocated_symbol(std::string* symbol) {
  if (symbol != nullptr) {
    
  } else {
    
  }
  symbol_.SetAllocated(symbol, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (symbol_.IsDefault()) {
    symbol_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol)
}

// .longbridge.quote.v1.Period period = 2 [json_name = "period"];
inline void SecurityHistoryCandlestickRequest::clear_period() {
  period_ = 0;
}
inline ::longbridge::quote::v1::Period SecurityHistoryCandlestickRequest::_internal_period() const {
  return static_cast< ::longbridge::quote::v1::Period >(period_);
}
inline ::longbridge::quote::v1::Period SecurityHistoryCandlestickRequest::period() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.period)
  return _internal_period();
}
inline void SecurityHistoryCandlestickRequest::_internal_set_period(::longbridge::quote::v1::Period value) {
  
  period_ = value;
}
inline void SecurityHistoryCandlestickRequest::set_period(::longbridge::quote::v1::Period value) {
  _internal_set_period(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.period)
}

// .longbridge.quote.v1.AdjustType adjust_type = 3 [json_name = "adjustType"];
inline void SecurityHistoryCandlestickRequest::clear_adjust_type() {
  adjust_type_ = 0;
}
inline ::longbridge::quote::v1::AdjustType SecurityHistoryCandlestickRequest::_internal_adjust_type() const {
  return static_cast< ::longbridge::quote::v1::AdjustType >(adjust_type_);
}
inline ::longbridge::quote::v1::AdjustType SecurityHistoryCandlestickRequest::adjust_type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.adjust_type)
  return _internal_adjust_type();
}
inline void SecurityHistoryCandlestickRequest::_internal_set_adjust_type(::longbridge::quote::v1::AdjustType value) {
  
  adjust_type_ = value;
}
inline void SecurityHistoryCandlestickRequest::set_adjust_type(::longbridge::quote::v1::AdjustType value) {
  _internal_set_adjust_type(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.adjust_type)
}

// .longbridge.quote.v1.HistoryCandlestickQueryType query_type = 4 [json_name = "queryType"];
inline void SecurityHistoryCandlestickRequest::clear_query_type() {
  query_type_ = 0;
}
inline ::longbridge::quote::v1::HistoryCandlestickQueryType SecurityHistoryCandlestickRequest::_internal_query_type() const {
  return static_cast< ::longbridge::quote::v1::HistoryCandlestickQueryType >(query_type_);
}
inline ::longbridge::quote::v1::HistoryCandlestickQueryType SecurityHistoryCandlestickRequest::query_type() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.query_type)
  return _internal_query_type();
}
inline void SecurityHistoryCandlestickRequest::_internal_set_query_type(::longbridge::quote::v1::HistoryCandlestickQueryType value) {
  
  query_type_ = value;
}
inline void SecurityHistoryCandlestickRequest::set_query_type(::longbridge::quote::v1::HistoryCandlestickQueryType value) {
  _internal_set_query_type(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.query_type)
}

// .longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery offset_request = 5 [json_name = "offsetRequest"];
inline bool SecurityHistoryCandlestickRequest::_internal_has_offset_request() const {
  return this != internal_default_instance() && offset_request_ != nullptr;
}
inline bool SecurityHistoryCandlestickRequest::has_offset_request() const {
  return _internal_has_offset_request();
}
inline void SecurityHistoryCandlestickRequest::clear_offset_request() {
  if (GetArenaForAllocation() == nullptr && offset_request_ != nullptr) {
    delete offset_request_;
  }
  offset_request_ = nullptr;
}
inline const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery& SecurityHistoryCandlestickRequest::_internal_offset_request() const {
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* p = offset_request_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery&>(
      ::longbridge::quote::v1::_SecurityHistoryCandlestickRequest_OffsetQuery_default_instance_);
}
inline const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery& SecurityHistoryCandlestickRequest::offset_request() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request)
  return _internal_offset_request();
}
inline void SecurityHistoryCandlestickRequest::unsafe_arena_set_allocated_offset_request(
    ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* offset_request) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(offset_request_);
  }
  offset_request_ = offset_request;
  if (offset_request) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request)
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* SecurityHistoryCandlestickRequest::release_offset_request() {
  
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* temp = offset_request_;
  offset_request_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* SecurityHistoryCandlestickRequest::unsafe_arena_release_offset_request() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request)
  
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* temp = offset_request_;
  offset_request_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* SecurityHistoryCandlestickRequest::_internal_mutable_offset_request() {
  
  if (offset_request_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery>(GetArenaForAllocation());
    offset_request_ = p;
  }
  return offset_request_;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* SecurityHistoryCandlestickRequest::mutable_offset_request() {
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* _msg = _internal_mutable_offset_request();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request)
  return _msg;
}
inline void SecurityHistoryCandlestickRequest::set_allocated_offset_request(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery* offset_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete offset_request_;
  }
  if (offset_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(offset_request);
    if (message_arena != submessage_arena) {
      offset_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, offset_request, submessage_arena);
    }
    
  } else {
    
  }
  offset_request_ = offset_request;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request)
}

// .longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery date_request = 6 [json_name = "dateRequest"];
inline bool SecurityHistoryCandlestickRequest::_internal_has_date_request() const {
  return this != internal_default_instance() && date_request_ != nullptr;
}
inline bool SecurityHistoryCandlestickRequest::has_date_request() const {
  return _internal_has_date_request();
}
inline void SecurityHistoryCandlestickRequest::clear_date_request() {
  if (GetArenaForAllocation() == nullptr && date_request_ != nullptr) {
    delete date_request_;
  }
  date_request_ = nullptr;
}
inline const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery& SecurityHistoryCandlestickRequest::_internal_date_request() const {
  const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* p = date_request_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery&>(
      ::longbridge::quote::v1::_SecurityHistoryCandlestickRequest_DateQuery_default_instance_);
}
inline const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery& SecurityHistoryCandlestickRequest::date_request() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request)
  return _internal_date_request();
}
inline void SecurityHistoryCandlestickRequest::unsafe_arena_set_allocated_date_request(
    ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* date_request) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(date_request_);
  }
  date_request_ = date_request;
  if (date_request) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request)
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* SecurityHistoryCandlestickRequest::release_date_request() {
  
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* temp = date_request_;
  date_request_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* SecurityHistoryCandlestickRequest::unsafe_arena_release_date_request() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request)
  
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* temp = date_request_;
  date_request_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* SecurityHistoryCandlestickRequest::_internal_mutable_date_request() {
  
  if (date_request_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery>(GetArenaForAllocation());
    date_request_ = p;
  }
  return date_request_;
}
inline ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* SecurityHistoryCandlestickRequest::mutable_date_request() {
  ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* _msg = _internal_mutable_date_request();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request)
  return _msg;
}
inline void SecurityHistoryCandlestickRequest::set_allocated_date_request(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery* date_request) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete date_request_;
  }
  if (date_request) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(date_request);
    if (message_arena != submessage_arena) {
      date_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, date_request, submessage_arena);
    }
    
  } else {
    
  }
  date_request_ = date_request;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request)
}

// int32 trade_session = 7 [json_name = "tradeSession"];
inline void SecurityHistoryCandlestickRequest::clear_trade_session() {
  trade_session_ = 0;
}
inline int32_t SecurityHistoryCandlestickRequest::_internal_trade_session() const {
  return trade_session_;
}
inline int32_t SecurityHistoryCandlestickRequest::trade_session() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.SecurityHistoryCandlestickRequest.trade_session)
  return _internal_trade_session();
}
inline void SecurityHistoryCandlestickRequest::_internal_set_trade_session(int32_t value) {
  
  trade_session_ = value;
}
inline void SecurityHistoryCandlestickRequest::set_trade_session(int32_t value) {
  _internal_set_trade_session(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.SecurityHistoryCandlestickRequest.trade_session)
}

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

// UserQuoteProfileRequest

// string language = 1 [json_name = "language"];
inline void UserQuoteProfileRequest::clear_language() {
  language_.ClearToEmpty();
}
inline const std::string& UserQuoteProfileRequest::language() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileRequest.language)
  return _internal_language();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteProfileRequest::set_language(ArgT0&& arg0, ArgT... args) {
 
 language_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteProfileRequest.language)
}
inline std::string* UserQuoteProfileRequest::mutable_language() {
  std::string* _s = _internal_mutable_language();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteProfileRequest.language)
  return _s;
}
inline const std::string& UserQuoteProfileRequest::_internal_language() const {
  return language_.Get();
}
inline void UserQuoteProfileRequest::_internal_set_language(const std::string& value) {
  
  language_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteProfileRequest::_internal_mutable_language() {
  
  return language_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteProfileRequest::release_language() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteProfileRequest.language)
  return language_.Release();
}
inline void UserQuoteProfileRequest::set_allocated_language(std::string* language) {
  if (language != nullptr) {
    
  } else {
    
  }
  language_.SetAllocated(language, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (language_.IsDefault()) {
    language_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteProfileRequest.language)
}

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

// RateLimit

// .longbridge.quote.v1.Command command = 1 [json_name = "command"];
inline void RateLimit::clear_command() {
  command_ = 0;
}
inline ::longbridge::quote::v1::Command RateLimit::_internal_command() const {
  return static_cast< ::longbridge::quote::v1::Command >(command_);
}
inline ::longbridge::quote::v1::Command RateLimit::command() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.RateLimit.command)
  return _internal_command();
}
inline void RateLimit::_internal_set_command(::longbridge::quote::v1::Command value) {
  
  command_ = value;
}
inline void RateLimit::set_command(::longbridge::quote::v1::Command value) {
  _internal_set_command(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.RateLimit.command)
}

// int32 limit = 2 [json_name = "limit"];
inline void RateLimit::clear_limit() {
  limit_ = 0;
}
inline int32_t RateLimit::_internal_limit() const {
  return limit_;
}
inline int32_t RateLimit::limit() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.RateLimit.limit)
  return _internal_limit();
}
inline void RateLimit::_internal_set_limit(int32_t value) {
  
  limit_ = value;
}
inline void RateLimit::set_limit(int32_t value) {
  _internal_set_limit(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.RateLimit.limit)
}

// int32 burst = 3 [json_name = "burst"];
inline void RateLimit::clear_burst() {
  burst_ = 0;
}
inline int32_t RateLimit::_internal_burst() const {
  return burst_;
}
inline int32_t RateLimit::burst() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.RateLimit.burst)
  return _internal_burst();
}
inline void RateLimit::_internal_set_burst(int32_t value) {
  
  burst_ = value;
}
inline void RateLimit::set_burst(int32_t value) {
  _internal_set_burst(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.RateLimit.burst)
}

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

// UserQuoteLevelDetail_PackageDetail

// string key = 1 [json_name = "key"];
inline void UserQuoteLevelDetail_PackageDetail::clear_key() {
  key_.ClearToEmpty();
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::key() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key)
  return _internal_key();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteLevelDetail_PackageDetail::set_key(ArgT0&& arg0, ArgT... args) {
 
 key_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key)
}
inline std::string* UserQuoteLevelDetail_PackageDetail::mutable_key() {
  std::string* _s = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key)
  return _s;
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::_internal_key() const {
  return key_.Get();
}
inline void UserQuoteLevelDetail_PackageDetail::_internal_set_key(const std::string& value) {
  
  key_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::_internal_mutable_key() {
  
  return key_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::release_key() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key)
  return key_.Release();
}
inline void UserQuoteLevelDetail_PackageDetail::set_allocated_key(std::string* key) {
  if (key != nullptr) {
    
  } else {
    
  }
  key_.SetAllocated(key, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (key_.IsDefault()) {
    key_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key)
}

// string name = 2 [json_name = "name"];
inline void UserQuoteLevelDetail_PackageDetail::clear_name() {
  name_.ClearToEmpty();
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::name() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteLevelDetail_PackageDetail::set_name(ArgT0&& arg0, ArgT... args) {
 
 name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name)
}
inline std::string* UserQuoteLevelDetail_PackageDetail::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name)
  return _s;
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::_internal_name() const {
  return name_.Get();
}
inline void UserQuoteLevelDetail_PackageDetail::_internal_set_name(const std::string& value) {
  
  name_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::_internal_mutable_name() {
  
  return name_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::release_name() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name)
  return name_.Release();
}
inline void UserQuoteLevelDetail_PackageDetail::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (name_.IsDefault()) {
    name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name)
}

// string description = 4 [json_name = "description"];
inline void UserQuoteLevelDetail_PackageDetail::clear_description() {
  description_.ClearToEmpty();
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::description() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description)
  return _internal_description();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteLevelDetail_PackageDetail::set_description(ArgT0&& arg0, ArgT... args) {
 
 description_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description)
}
inline std::string* UserQuoteLevelDetail_PackageDetail::mutable_description() {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description)
  return _s;
}
inline const std::string& UserQuoteLevelDetail_PackageDetail::_internal_description() const {
  return description_.Get();
}
inline void UserQuoteLevelDetail_PackageDetail::_internal_set_description(const std::string& value) {
  
  description_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::_internal_mutable_description() {
  
  return description_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_PackageDetail::release_description() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description)
  return description_.Release();
}
inline void UserQuoteLevelDetail_PackageDetail::set_allocated_description(std::string* description) {
  if (description != nullptr) {
    
  } else {
    
  }
  description_.SetAllocated(description, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (description_.IsDefault()) {
    description_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description)
}

// int64 start = 5 [json_name = "start"];
inline void UserQuoteLevelDetail_PackageDetail::clear_start() {
  start_ = int64_t{0};
}
inline int64_t UserQuoteLevelDetail_PackageDetail::_internal_start() const {
  return start_;
}
inline int64_t UserQuoteLevelDetail_PackageDetail::start() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.start)
  return _internal_start();
}
inline void UserQuoteLevelDetail_PackageDetail::_internal_set_start(int64_t value) {
  
  start_ = value;
}
inline void UserQuoteLevelDetail_PackageDetail::set_start(int64_t value) {
  _internal_set_start(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.start)
}

// int64 end = 6 [json_name = "end"];
inline void UserQuoteLevelDetail_PackageDetail::clear_end() {
  end_ = int64_t{0};
}
inline int64_t UserQuoteLevelDetail_PackageDetail::_internal_end() const {
  return end_;
}
inline int64_t UserQuoteLevelDetail_PackageDetail::end() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.end)
  return _internal_end();
}
inline void UserQuoteLevelDetail_PackageDetail::_internal_set_end(int64_t value) {
  
  end_ = value;
}
inline void UserQuoteLevelDetail_PackageDetail::set_end(int64_t value) {
  _internal_set_end(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.end)
}

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

// UserQuoteLevelDetail_MarketPackageDetail

// repeated .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail packages = 1 [json_name = "packages"];
inline int UserQuoteLevelDetail_MarketPackageDetail::_internal_packages_size() const {
  return packages_.size();
}
inline int UserQuoteLevelDetail_MarketPackageDetail::packages_size() const {
  return _internal_packages_size();
}
inline void UserQuoteLevelDetail_MarketPackageDetail::clear_packages() {
  packages_.Clear();
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* UserQuoteLevelDetail_MarketPackageDetail::mutable_packages(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages)
  return packages_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
UserQuoteLevelDetail_MarketPackageDetail::mutable_packages() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages)
  return &packages_;
}
inline const ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail& UserQuoteLevelDetail_MarketPackageDetail::_internal_packages(int index) const {
  return packages_.Get(index);
}
inline const ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail& UserQuoteLevelDetail_MarketPackageDetail::packages(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages)
  return _internal_packages(index);
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* UserQuoteLevelDetail_MarketPackageDetail::_internal_add_packages() {
  return packages_.Add();
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* UserQuoteLevelDetail_MarketPackageDetail::add_packages() {
  ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail* _add = _internal_add_packages();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
UserQuoteLevelDetail_MarketPackageDetail::packages() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages)
  return packages_;
}

// string warning_msg = 4 [json_name = "warningMsg"];
inline void UserQuoteLevelDetail_MarketPackageDetail::clear_warning_msg() {
  warning_msg_.ClearToEmpty();
}
inline const std::string& UserQuoteLevelDetail_MarketPackageDetail::warning_msg() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg)
  return _internal_warning_msg();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteLevelDetail_MarketPackageDetail::set_warning_msg(ArgT0&& arg0, ArgT... args) {
 
 warning_msg_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg)
}
inline std::string* UserQuoteLevelDetail_MarketPackageDetail::mutable_warning_msg() {
  std::string* _s = _internal_mutable_warning_msg();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg)
  return _s;
}
inline const std::string& UserQuoteLevelDetail_MarketPackageDetail::_internal_warning_msg() const {
  return warning_msg_.Get();
}
inline void UserQuoteLevelDetail_MarketPackageDetail::_internal_set_warning_msg(const std::string& value) {
  
  warning_msg_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_MarketPackageDetail::_internal_mutable_warning_msg() {
  
  return warning_msg_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteLevelDetail_MarketPackageDetail::release_warning_msg() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg)
  return warning_msg_.Release();
}
inline void UserQuoteLevelDetail_MarketPackageDetail::set_allocated_warning_msg(std::string* warning_msg) {
  if (warning_msg != nullptr) {
    
  } else {
    
  }
  warning_msg_.SetAllocated(warning_msg, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (warning_msg_.IsDefault()) {
    warning_msg_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg)
}

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

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

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

// UserQuoteLevelDetail

// map<string, .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail> by_package_key = 1 [json_name = "byPackageKey"];
inline int UserQuoteLevelDetail::_internal_by_package_key_size() const {
  return by_package_key_.size();
}
inline int UserQuoteLevelDetail::by_package_key_size() const {
  return _internal_by_package_key_size();
}
inline void UserQuoteLevelDetail::clear_by_package_key() {
  by_package_key_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
UserQuoteLevelDetail::_internal_by_package_key() const {
  return by_package_key_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >&
UserQuoteLevelDetail::by_package_key() const {
  // @@protoc_insertion_point(field_map:longbridge.quote.v1.UserQuoteLevelDetail.by_package_key)
  return _internal_by_package_key();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
UserQuoteLevelDetail::_internal_mutable_by_package_key() {
  return by_package_key_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >*
UserQuoteLevelDetail::mutable_by_package_key() {
  // @@protoc_insertion_point(field_mutable_map:longbridge.quote.v1.UserQuoteLevelDetail.by_package_key)
  return _internal_mutable_by_package_key();
}

// map<string, .longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail> by_market_code = 2 [json_name = "byMarketCode"];
inline int UserQuoteLevelDetail::_internal_by_market_code_size() const {
  return by_market_code_.size();
}
inline int UserQuoteLevelDetail::by_market_code_size() const {
  return _internal_by_market_code_size();
}
inline void UserQuoteLevelDetail::clear_by_market_code() {
  by_market_code_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >&
UserQuoteLevelDetail::_internal_by_market_code() const {
  return by_market_code_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >&
UserQuoteLevelDetail::by_market_code() const {
  // @@protoc_insertion_point(field_map:longbridge.quote.v1.UserQuoteLevelDetail.by_market_code)
  return _internal_by_market_code();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >*
UserQuoteLevelDetail::_internal_mutable_by_market_code() {
  return by_market_code_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >*
UserQuoteLevelDetail::mutable_by_market_code() {
  // @@protoc_insertion_point(field_mutable_map:longbridge.quote.v1.UserQuoteLevelDetail.by_market_code)
  return _internal_mutable_by_market_code();
}

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

// UserQuoteProfileResponse

// int64 member_id = 1 [json_name = "memberId"];
inline void UserQuoteProfileResponse::clear_member_id() {
  member_id_ = int64_t{0};
}
inline int64_t UserQuoteProfileResponse::_internal_member_id() const {
  return member_id_;
}
inline int64_t UserQuoteProfileResponse::member_id() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.member_id)
  return _internal_member_id();
}
inline void UserQuoteProfileResponse::_internal_set_member_id(int64_t value) {
  
  member_id_ = value;
}
inline void UserQuoteProfileResponse::set_member_id(int64_t value) {
  _internal_set_member_id(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteProfileResponse.member_id)
}

// string quote_level = 2 [json_name = "quoteLevel"];
inline void UserQuoteProfileResponse::clear_quote_level() {
  quote_level_.ClearToEmpty();
}
inline const std::string& UserQuoteProfileResponse::quote_level() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.quote_level)
  return _internal_quote_level();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void UserQuoteProfileResponse::set_quote_level(ArgT0&& arg0, ArgT... args) {
 
 quote_level_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteProfileResponse.quote_level)
}
inline std::string* UserQuoteProfileResponse::mutable_quote_level() {
  std::string* _s = _internal_mutable_quote_level();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteProfileResponse.quote_level)
  return _s;
}
inline const std::string& UserQuoteProfileResponse::_internal_quote_level() const {
  return quote_level_.Get();
}
inline void UserQuoteProfileResponse::_internal_set_quote_level(const std::string& value) {
  
  quote_level_.Set(value, GetArenaForAllocation());
}
inline std::string* UserQuoteProfileResponse::_internal_mutable_quote_level() {
  
  return quote_level_.Mutable(GetArenaForAllocation());
}
inline std::string* UserQuoteProfileResponse::release_quote_level() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteProfileResponse.quote_level)
  return quote_level_.Release();
}
inline void UserQuoteProfileResponse::set_allocated_quote_level(std::string* quote_level) {
  if (quote_level != nullptr) {
    
  } else {
    
  }
  quote_level_.SetAllocated(quote_level, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (quote_level_.IsDefault()) {
    quote_level_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteProfileResponse.quote_level)
}

// int32 subscribe_limit = 3 [json_name = "subscribeLimit"];
inline void UserQuoteProfileResponse::clear_subscribe_limit() {
  subscribe_limit_ = 0;
}
inline int32_t UserQuoteProfileResponse::_internal_subscribe_limit() const {
  return subscribe_limit_;
}
inline int32_t UserQuoteProfileResponse::subscribe_limit() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.subscribe_limit)
  return _internal_subscribe_limit();
}
inline void UserQuoteProfileResponse::_internal_set_subscribe_limit(int32_t value) {
  
  subscribe_limit_ = value;
}
inline void UserQuoteProfileResponse::set_subscribe_limit(int32_t value) {
  _internal_set_subscribe_limit(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteProfileResponse.subscribe_limit)
}

// int32 history_candlestick_limit = 4 [json_name = "historyCandlestickLimit"];
inline void UserQuoteProfileResponse::clear_history_candlestick_limit() {
  history_candlestick_limit_ = 0;
}
inline int32_t UserQuoteProfileResponse::_internal_history_candlestick_limit() const {
  return history_candlestick_limit_;
}
inline int32_t UserQuoteProfileResponse::history_candlestick_limit() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.history_candlestick_limit)
  return _internal_history_candlestick_limit();
}
inline void UserQuoteProfileResponse::_internal_set_history_candlestick_limit(int32_t value) {
  
  history_candlestick_limit_ = value;
}
inline void UserQuoteProfileResponse::set_history_candlestick_limit(int32_t value) {
  _internal_set_history_candlestick_limit(value);
  // @@protoc_insertion_point(field_set:longbridge.quote.v1.UserQuoteProfileResponse.history_candlestick_limit)
}

// repeated .longbridge.quote.v1.RateLimit rate_limit = 5 [json_name = "rateLimit"];
inline int UserQuoteProfileResponse::_internal_rate_limit_size() const {
  return rate_limit_.size();
}
inline int UserQuoteProfileResponse::rate_limit_size() const {
  return _internal_rate_limit_size();
}
inline void UserQuoteProfileResponse::clear_rate_limit() {
  rate_limit_.Clear();
}
inline ::longbridge::quote::v1::RateLimit* UserQuoteProfileResponse::mutable_rate_limit(int index) {
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteProfileResponse.rate_limit)
  return rate_limit_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::RateLimit >*
UserQuoteProfileResponse::mutable_rate_limit() {
  // @@protoc_insertion_point(field_mutable_list:longbridge.quote.v1.UserQuoteProfileResponse.rate_limit)
  return &rate_limit_;
}
inline const ::longbridge::quote::v1::RateLimit& UserQuoteProfileResponse::_internal_rate_limit(int index) const {
  return rate_limit_.Get(index);
}
inline const ::longbridge::quote::v1::RateLimit& UserQuoteProfileResponse::rate_limit(int index) const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.rate_limit)
  return _internal_rate_limit(index);
}
inline ::longbridge::quote::v1::RateLimit* UserQuoteProfileResponse::_internal_add_rate_limit() {
  return rate_limit_.Add();
}
inline ::longbridge::quote::v1::RateLimit* UserQuoteProfileResponse::add_rate_limit() {
  ::longbridge::quote::v1::RateLimit* _add = _internal_add_rate_limit();
  // @@protoc_insertion_point(field_add:longbridge.quote.v1.UserQuoteProfileResponse.rate_limit)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::longbridge::quote::v1::RateLimit >&
UserQuoteProfileResponse::rate_limit() const {
  // @@protoc_insertion_point(field_list:longbridge.quote.v1.UserQuoteProfileResponse.rate_limit)
  return rate_limit_;
}

// .longbridge.quote.v1.UserQuoteLevelDetail quote_level_detail = 6 [json_name = "quoteLevelDetail"];
inline bool UserQuoteProfileResponse::_internal_has_quote_level_detail() const {
  return this != internal_default_instance() && quote_level_detail_ != nullptr;
}
inline bool UserQuoteProfileResponse::has_quote_level_detail() const {
  return _internal_has_quote_level_detail();
}
inline void UserQuoteProfileResponse::clear_quote_level_detail() {
  if (GetArenaForAllocation() == nullptr && quote_level_detail_ != nullptr) {
    delete quote_level_detail_;
  }
  quote_level_detail_ = nullptr;
}
inline const ::longbridge::quote::v1::UserQuoteLevelDetail& UserQuoteProfileResponse::_internal_quote_level_detail() const {
  const ::longbridge::quote::v1::UserQuoteLevelDetail* p = quote_level_detail_;
  return p != nullptr ? *p : reinterpret_cast<const ::longbridge::quote::v1::UserQuoteLevelDetail&>(
      ::longbridge::quote::v1::_UserQuoteLevelDetail_default_instance_);
}
inline const ::longbridge::quote::v1::UserQuoteLevelDetail& UserQuoteProfileResponse::quote_level_detail() const {
  // @@protoc_insertion_point(field_get:longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail)
  return _internal_quote_level_detail();
}
inline void UserQuoteProfileResponse::unsafe_arena_set_allocated_quote_level_detail(
    ::longbridge::quote::v1::UserQuoteLevelDetail* quote_level_detail) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(quote_level_detail_);
  }
  quote_level_detail_ = quote_level_detail;
  if (quote_level_detail) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail)
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail* UserQuoteProfileResponse::release_quote_level_detail() {
  
  ::longbridge::quote::v1::UserQuoteLevelDetail* temp = quote_level_detail_;
  quote_level_detail_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail* UserQuoteProfileResponse::unsafe_arena_release_quote_level_detail() {
  // @@protoc_insertion_point(field_release:longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail)
  
  ::longbridge::quote::v1::UserQuoteLevelDetail* temp = quote_level_detail_;
  quote_level_detail_ = nullptr;
  return temp;
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail* UserQuoteProfileResponse::_internal_mutable_quote_level_detail() {
  
  if (quote_level_detail_ == nullptr) {
    auto* p = CreateMaybeMessage<::longbridge::quote::v1::UserQuoteLevelDetail>(GetArenaForAllocation());
    quote_level_detail_ = p;
  }
  return quote_level_detail_;
}
inline ::longbridge::quote::v1::UserQuoteLevelDetail* UserQuoteProfileResponse::mutable_quote_level_detail() {
  ::longbridge::quote::v1::UserQuoteLevelDetail* _msg = _internal_mutable_quote_level_detail();
  // @@protoc_insertion_point(field_mutable:longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail)
  return _msg;
}
inline void UserQuoteProfileResponse::set_allocated_quote_level_detail(::longbridge::quote::v1::UserQuoteLevelDetail* quote_level_detail) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete quote_level_detail_;
  }
  if (quote_level_detail) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(quote_level_detail);
    if (message_arena != submessage_arena) {
      quote_level_detail = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, quote_level_detail, submessage_arena);
    }
    
  } else {
    
  }
  quote_level_detail_ = quote_level_detail;
  // @@protoc_insertion_point(field_set_allocated:longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace quote
}  // namespace longbridge

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::longbridge::quote::v1::Command> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::Command>() {
  return ::longbridge::quote::v1::Command_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::TradeStatus> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::TradeStatus>() {
  return ::longbridge::quote::v1::TradeStatus_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::TradeSession> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::TradeSession>() {
  return ::longbridge::quote::v1::TradeSession_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::AdjustType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::AdjustType>() {
  return ::longbridge::quote::v1::AdjustType_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::Period> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::Period>() {
  return ::longbridge::quote::v1::Period_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::SubType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::SubType>() {
  return ::longbridge::quote::v1::SubType_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::PushQuoteTag> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::PushQuoteTag>() {
  return ::longbridge::quote::v1::PushQuoteTag_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::CalcIndex> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::CalcIndex>() {
  return ::longbridge::quote::v1::CalcIndex_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::HistoryCandlestickQueryType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::HistoryCandlestickQueryType>() {
  return ::longbridge::quote::v1::HistoryCandlestickQueryType_descriptor();
}
template <> struct is_proto_enum< ::longbridge::quote::v1::Direction> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::longbridge::quote::v1::Direction>() {
  return ::longbridge::quote::v1::Direction_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_quote_2fapi_2eproto
