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

#include "quote/api.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG
namespace longbridgeapp {
namespace quote {
namespace v1 {
constexpr SecurityRequest::SecurityRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityRequestDefaultTypeInternal {
  constexpr SecurityRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityRequestDefaultTypeInternal() {}
  union {
    SecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityRequestDefaultTypeInternal _SecurityRequest_default_instance_;
constexpr MultiSecurityRequest::MultiSecurityRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(){}
struct MultiSecurityRequestDefaultTypeInternal {
  constexpr MultiSecurityRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~MultiSecurityRequestDefaultTypeInternal() {}
  union {
    MultiSecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MultiSecurityRequestDefaultTypeInternal _MultiSecurityRequest_default_instance_;
constexpr SecurityStaticInfoResponse::SecurityStaticInfoResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : secu_static_info_(){}
struct SecurityStaticInfoResponseDefaultTypeInternal {
  constexpr SecurityStaticInfoResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityStaticInfoResponseDefaultTypeInternal() {}
  union {
    SecurityStaticInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityStaticInfoResponseDefaultTypeInternal _SecurityStaticInfoResponse_default_instance_;
constexpr StaticInfo::StaticInfo(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : stock_derivatives_()
  , _stock_derivatives_cached_byte_size_(0)
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_cn_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_en_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_hk_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , listing_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , exchange_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , currency_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , eps_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , eps_ttm_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , bps_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , dividend_yield_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , total_shares_(int64_t{0})
  , circulating_shares_(int64_t{0})
  , hk_shares_(int64_t{0})
  , lot_size_(0){}
struct StaticInfoDefaultTypeInternal {
  constexpr StaticInfoDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~StaticInfoDefaultTypeInternal() {}
  union {
    StaticInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StaticInfoDefaultTypeInternal _StaticInfo_default_instance_;
constexpr SecurityQuoteResponse::SecurityQuoteResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : secu_quote_(){}
struct SecurityQuoteResponseDefaultTypeInternal {
  constexpr SecurityQuoteResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityQuoteResponseDefaultTypeInternal() {}
  union {
    SecurityQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityQuoteResponseDefaultTypeInternal _SecurityQuoteResponse_default_instance_;
constexpr SecurityQuote::SecurityQuote(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , prev_close_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , pre_market_quote_(nullptr)
  , post_market_quote_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct SecurityQuoteDefaultTypeInternal {
  constexpr SecurityQuoteDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityQuoteDefaultTypeInternal() {}
  union {
    SecurityQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityQuoteDefaultTypeInternal _SecurityQuote_default_instance_;
constexpr PrePostQuote::PrePostQuote(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , prev_close_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0}){}
struct PrePostQuoteDefaultTypeInternal {
  constexpr PrePostQuoteDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~PrePostQuoteDefaultTypeInternal() {}
  union {
    PrePostQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PrePostQuoteDefaultTypeInternal _PrePostQuote_default_instance_;
constexpr OptionQuoteResponse::OptionQuoteResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : secu_quote_(){}
struct OptionQuoteResponseDefaultTypeInternal {
  constexpr OptionQuoteResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionQuoteResponseDefaultTypeInternal() {}
  union {
    OptionQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionQuoteResponseDefaultTypeInternal _OptionQuoteResponse_default_instance_;
constexpr OptionQuote::OptionQuote(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , prev_close_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , option_extend_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct OptionQuoteDefaultTypeInternal {
  constexpr OptionQuoteDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionQuoteDefaultTypeInternal() {}
  union {
    OptionQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionQuoteDefaultTypeInternal _OptionQuote_default_instance_;
constexpr OptionExtend::OptionExtend(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : implied_volatility_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , expiry_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , contract_multiplier_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , contract_type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , contract_size_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , direction_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , historical_volatility_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , underlying_symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_interest_(int64_t{0}){}
struct OptionExtendDefaultTypeInternal {
  constexpr OptionExtendDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionExtendDefaultTypeInternal() {}
  union {
    OptionExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionExtendDefaultTypeInternal _OptionExtend_default_instance_;
constexpr WarrantQuoteResponse::WarrantQuoteResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : secu_quote_(){}
struct WarrantQuoteResponseDefaultTypeInternal {
  constexpr WarrantQuoteResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WarrantQuoteResponseDefaultTypeInternal() {}
  union {
    WarrantQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WarrantQuoteResponseDefaultTypeInternal _WarrantQuoteResponse_default_instance_;
constexpr WarrantQuote::WarrantQuote(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , prev_close_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , warrant_extend_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct WarrantQuoteDefaultTypeInternal {
  constexpr WarrantQuoteDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WarrantQuoteDefaultTypeInternal() {}
  union {
    WarrantQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WarrantQuoteDefaultTypeInternal _WarrantQuote_default_instance_;
constexpr WarrantExtend::WarrantExtend(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : implied_volatility_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , expiry_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_trade_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , outstanding_ratio_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , conversion_ratio_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , category_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , upper_strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , lower_strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , call_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , underlying_symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , outstanding_qty_(int64_t{0}){}
struct WarrantExtendDefaultTypeInternal {
  constexpr WarrantExtendDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WarrantExtendDefaultTypeInternal() {}
  union {
    WarrantExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WarrantExtendDefaultTypeInternal _WarrantExtend_default_instance_;
constexpr SecurityDepthResponse::SecurityDepthResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ask_()
  , bid_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityDepthResponseDefaultTypeInternal {
  constexpr SecurityDepthResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityDepthResponseDefaultTypeInternal() {}
  union {
    SecurityDepthResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityDepthResponseDefaultTypeInternal _SecurityDepthResponse_default_instance_;
constexpr Depth::Depth(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , volume_(int64_t{0})
  , order_num_(int64_t{0})
  , position_(0){}
struct DepthDefaultTypeInternal {
  constexpr DepthDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~DepthDefaultTypeInternal() {}
  union {
    Depth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DepthDefaultTypeInternal _Depth_default_instance_;
constexpr SecurityBrokersResponse::SecurityBrokersResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ask_brokers_()
  , bid_brokers_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityBrokersResponseDefaultTypeInternal {
  constexpr SecurityBrokersResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityBrokersResponseDefaultTypeInternal() {}
  union {
    SecurityBrokersResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityBrokersResponseDefaultTypeInternal _SecurityBrokersResponse_default_instance_;
constexpr Brokers::Brokers(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : broker_ids_()
  , _broker_ids_cached_byte_size_(0)
  , position_(0){}
struct BrokersDefaultTypeInternal {
  constexpr BrokersDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~BrokersDefaultTypeInternal() {}
  union {
    Brokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BrokersDefaultTypeInternal _Brokers_default_instance_;
constexpr ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : participant_broker_numbers_(){}
struct ParticipantBrokerIdsResponseDefaultTypeInternal {
  constexpr ParticipantBrokerIdsResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~ParticipantBrokerIdsResponseDefaultTypeInternal() {}
  union {
    ParticipantBrokerIdsResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ParticipantBrokerIdsResponseDefaultTypeInternal _ParticipantBrokerIdsResponse_default_instance_;
constexpr ParticipantInfo::ParticipantInfo(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : broker_ids_()
  , _broker_ids_cached_byte_size_(0)
  , participant_name_cn_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , participant_name_en_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , participant_name_hk_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct ParticipantInfoDefaultTypeInternal {
  constexpr ParticipantInfoDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~ParticipantInfoDefaultTypeInternal() {}
  union {
    ParticipantInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ParticipantInfoDefaultTypeInternal _ParticipantInfo_default_instance_;
constexpr SecurityTradeRequest::SecurityTradeRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , count_(0){}
struct SecurityTradeRequestDefaultTypeInternal {
  constexpr SecurityTradeRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityTradeRequestDefaultTypeInternal() {}
  union {
    SecurityTradeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityTradeRequestDefaultTypeInternal _SecurityTradeRequest_default_instance_;
constexpr SecurityTradeResponse::SecurityTradeResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : trades_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityTradeResponseDefaultTypeInternal {
  constexpr SecurityTradeResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityTradeResponseDefaultTypeInternal() {}
  union {
    SecurityTradeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityTradeResponseDefaultTypeInternal _SecurityTradeResponse_default_instance_;
constexpr Trade::Trade(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , trade_type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , volume_(int64_t{0})
  , timestamp_(int64_t{0})
  , direction_(0)
  , trade_session_(0)
{}
struct TradeDefaultTypeInternal {
  constexpr TradeDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TradeDefaultTypeInternal() {}
  union {
    Trade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TradeDefaultTypeInternal _Trade_default_instance_;
constexpr SecurityIntradayRequest::SecurityIntradayRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityIntradayRequestDefaultTypeInternal {
  constexpr SecurityIntradayRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityIntradayRequestDefaultTypeInternal() {}
  union {
    SecurityIntradayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityIntradayRequestDefaultTypeInternal _SecurityIntradayRequest_default_instance_;
constexpr SecurityIntradayResponse::SecurityIntradayResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : lines_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityIntradayResponseDefaultTypeInternal {
  constexpr SecurityIntradayResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityIntradayResponseDefaultTypeInternal() {}
  union {
    SecurityIntradayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityIntradayResponseDefaultTypeInternal _SecurityIntradayResponse_default_instance_;
constexpr Line::Line(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , avg_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0}){}
struct LineDefaultTypeInternal {
  constexpr LineDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LineDefaultTypeInternal() {}
  union {
    Line _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LineDefaultTypeInternal _Line_default_instance_;
constexpr SecurityCandlestickRequest::SecurityCandlestickRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , period_(0)

  , count_(0)
  , adjust_type_(0)
{}
struct SecurityCandlestickRequestDefaultTypeInternal {
  constexpr SecurityCandlestickRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityCandlestickRequestDefaultTypeInternal() {}
  union {
    SecurityCandlestickRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityCandlestickRequestDefaultTypeInternal _SecurityCandlestickRequest_default_instance_;
constexpr SecurityCandlestickResponse::SecurityCandlestickResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : candlesticks_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SecurityCandlestickResponseDefaultTypeInternal {
  constexpr SecurityCandlestickResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SecurityCandlestickResponseDefaultTypeInternal() {}
  union {
    SecurityCandlestickResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SecurityCandlestickResponseDefaultTypeInternal _SecurityCandlestickResponse_default_instance_;
constexpr Candlestick::Candlestick(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : close_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , volume_(int64_t{0})
  , timestamp_(int64_t{0}){}
struct CandlestickDefaultTypeInternal {
  constexpr CandlestickDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~CandlestickDefaultTypeInternal() {}
  union {
    Candlestick _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CandlestickDefaultTypeInternal _Candlestick_default_instance_;
constexpr OptionChainDateListResponse::OptionChainDateListResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : expiry_date_(){}
struct OptionChainDateListResponseDefaultTypeInternal {
  constexpr OptionChainDateListResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionChainDateListResponseDefaultTypeInternal() {}
  union {
    OptionChainDateListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionChainDateListResponseDefaultTypeInternal _OptionChainDateListResponse_default_instance_;
constexpr OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , expiry_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct OptionChainDateStrikeInfoRequestDefaultTypeInternal {
  constexpr OptionChainDateStrikeInfoRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoRequestDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionChainDateStrikeInfoRequestDefaultTypeInternal _OptionChainDateStrikeInfoRequest_default_instance_;
constexpr OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : strike_price_info_(){}
struct OptionChainDateStrikeInfoResponseDefaultTypeInternal {
  constexpr OptionChainDateStrikeInfoResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoResponseDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OptionChainDateStrikeInfoResponseDefaultTypeInternal _OptionChainDateStrikeInfoResponse_default_instance_;
constexpr StrikePriceInfo::StrikePriceInfo(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , call_symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , put_symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , standard_(false){}
struct StrikePriceInfoDefaultTypeInternal {
  constexpr StrikePriceInfoDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~StrikePriceInfoDefaultTypeInternal() {}
  union {
    StrikePriceInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT StrikePriceInfoDefaultTypeInternal _StrikePriceInfo_default_instance_;
constexpr IssuerInfoResponse::IssuerInfoResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : issuer_info_(){}
struct IssuerInfoResponseDefaultTypeInternal {
  constexpr IssuerInfoResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~IssuerInfoResponseDefaultTypeInternal() {}
  union {
    IssuerInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IssuerInfoResponseDefaultTypeInternal _IssuerInfoResponse_default_instance_;
constexpr IssuerInfo::IssuerInfo(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : name_cn_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_en_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_hk_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , id_(0){}
struct IssuerInfoDefaultTypeInternal {
  constexpr IssuerInfoDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~IssuerInfoDefaultTypeInternal() {}
  union {
    IssuerInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IssuerInfoDefaultTypeInternal _IssuerInfo_default_instance_;
constexpr WarrantFilterListRequest::WarrantFilterListRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , filter_config_(nullptr)
  , language_(0){}
struct WarrantFilterListRequestDefaultTypeInternal {
  constexpr WarrantFilterListRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WarrantFilterListRequestDefaultTypeInternal() {}
  union {
    WarrantFilterListRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WarrantFilterListRequestDefaultTypeInternal _WarrantFilterListRequest_default_instance_;
constexpr FilterConfig::FilterConfig(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : type_()
  , _type_cached_byte_size_(0)
  , issuer_()
  , _issuer_cached_byte_size_(0)
  , expiry_date_()
  , _expiry_date_cached_byte_size_(0)
  , price_type_()
  , _price_type_cached_byte_size_(0)
  , status_()
  , _status_cached_byte_size_(0)
  , sort_by_(0)
  , sort_order_(0)
  , sort_offset_(0)
  , sort_count_(0){}
struct FilterConfigDefaultTypeInternal {
  constexpr FilterConfigDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~FilterConfigDefaultTypeInternal() {}
  union {
    FilterConfig _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT FilterConfigDefaultTypeInternal _FilterConfig_default_instance_;
constexpr WarrantFilterListResponse::WarrantFilterListResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : warrant_list_()
  , total_count_(0){}
struct WarrantFilterListResponseDefaultTypeInternal {
  constexpr WarrantFilterListResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~WarrantFilterListResponseDefaultTypeInternal() {}
  union {
    WarrantFilterListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT WarrantFilterListResponseDefaultTypeInternal _WarrantFilterListResponse_default_instance_;
constexpr FilterWarrant::FilterWarrant(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , change_rate_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , change_val_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , expiry_date_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , upper_strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , lower_strike_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , outstanding_qty_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , outstanding_ratio_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , premium_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , itm_otm_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , implied_volatility_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , delta_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , call_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , to_call_price_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , effective_leverage_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , leverage_ratio_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , conversion_ratio_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , balance_point_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , state_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , volume_(int64_t{0}){}
struct FilterWarrantDefaultTypeInternal {
  constexpr FilterWarrantDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~FilterWarrantDefaultTypeInternal() {}
  union {
    FilterWarrant _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT FilterWarrantDefaultTypeInternal _FilterWarrant_default_instance_;
constexpr MarketTradePeriodResponse::MarketTradePeriodResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : market_trade_session_(){}
struct MarketTradePeriodResponseDefaultTypeInternal {
  constexpr MarketTradePeriodResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~MarketTradePeriodResponseDefaultTypeInternal() {}
  union {
    MarketTradePeriodResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MarketTradePeriodResponseDefaultTypeInternal _MarketTradePeriodResponse_default_instance_;
constexpr MarketTradePeriod::MarketTradePeriod(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : trade_session_()
  , market_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct MarketTradePeriodDefaultTypeInternal {
  constexpr MarketTradePeriodDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~MarketTradePeriodDefaultTypeInternal() {}
  union {
    MarketTradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MarketTradePeriodDefaultTypeInternal _MarketTradePeriod_default_instance_;
constexpr TradePeriod::TradePeriod(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : beg_time_(0)
  , end_time_(0)
  , trade_session_(0)
{}
struct TradePeriodDefaultTypeInternal {
  constexpr TradePeriodDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TradePeriodDefaultTypeInternal() {}
  union {
    TradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TradePeriodDefaultTypeInternal _TradePeriod_default_instance_;
constexpr SubscriptionRequest::SubscriptionRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct SubscriptionRequestDefaultTypeInternal {
  constexpr SubscriptionRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SubscriptionRequestDefaultTypeInternal() {}
  union {
    SubscriptionRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SubscriptionRequestDefaultTypeInternal _SubscriptionRequest_default_instance_;
constexpr SubscriptionResponse::SubscriptionResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : sub_list_(){}
struct SubscriptionResponseDefaultTypeInternal {
  constexpr SubscriptionResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SubscriptionResponseDefaultTypeInternal() {}
  union {
    SubscriptionResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SubscriptionResponseDefaultTypeInternal _SubscriptionResponse_default_instance_;
constexpr SubTypeList::SubTypeList(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : sub_type_()
  , _sub_type_cached_byte_size_(0)
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SubTypeListDefaultTypeInternal {
  constexpr SubTypeListDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SubTypeListDefaultTypeInternal() {}
  union {
    SubTypeList _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SubTypeListDefaultTypeInternal _SubTypeList_default_instance_;
constexpr SubscribeRequest::SubscribeRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_()
  , sub_type_()
  , _sub_type_cached_byte_size_(0)
  , is_first_push_(false){}
struct SubscribeRequestDefaultTypeInternal {
  constexpr SubscribeRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SubscribeRequestDefaultTypeInternal() {}
  union {
    SubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SubscribeRequestDefaultTypeInternal _SubscribeRequest_default_instance_;
constexpr UnsubscribeRequest::UnsubscribeRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_()
  , sub_type_()
  , _sub_type_cached_byte_size_(0)
  , unsub_all_(false){}
struct UnsubscribeRequestDefaultTypeInternal {
  constexpr UnsubscribeRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~UnsubscribeRequestDefaultTypeInternal() {}
  union {
    UnsubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT UnsubscribeRequestDefaultTypeInternal _UnsubscribeRequest_default_instance_;
constexpr UnsubscribeResponse::UnsubscribeResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized){}
struct UnsubscribeResponseDefaultTypeInternal {
  constexpr UnsubscribeResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~UnsubscribeResponseDefaultTypeInternal() {}
  union {
    UnsubscribeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT UnsubscribeResponseDefaultTypeInternal _UnsubscribeResponse_default_instance_;
constexpr PushQuote::PushQuote(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , last_done_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , open_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , high_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , low_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , turnover_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sequence_(int64_t{0})
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)

  , trade_session_(0)
{}
struct PushQuoteDefaultTypeInternal {
  constexpr PushQuoteDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~PushQuoteDefaultTypeInternal() {}
  union {
    PushQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PushQuoteDefaultTypeInternal _PushQuote_default_instance_;
constexpr PushDepth::PushDepth(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ask_()
  , bid_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sequence_(int64_t{0}){}
struct PushDepthDefaultTypeInternal {
  constexpr PushDepthDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~PushDepthDefaultTypeInternal() {}
  union {
    PushDepth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PushDepthDefaultTypeInternal _PushDepth_default_instance_;
constexpr PushBrokers::PushBrokers(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : ask_brokers_()
  , bid_brokers_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sequence_(int64_t{0}){}
struct PushBrokersDefaultTypeInternal {
  constexpr PushBrokersDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~PushBrokersDefaultTypeInternal() {}
  union {
    PushBrokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PushBrokersDefaultTypeInternal _PushBrokers_default_instance_;
constexpr PushTrade::PushTrade(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : trade_()
  , symbol_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sequence_(int64_t{0}){}
struct PushTradeDefaultTypeInternal {
  constexpr PushTradeDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~PushTradeDefaultTypeInternal() {}
  union {
    PushTrade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PushTradeDefaultTypeInternal _PushTrade_default_instance_;
constexpr MarketTradeDayRequest::MarketTradeDayRequest(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : market_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , beg_day_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , end_day_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct MarketTradeDayRequestDefaultTypeInternal {
  constexpr MarketTradeDayRequestDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~MarketTradeDayRequestDefaultTypeInternal() {}
  union {
    MarketTradeDayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MarketTradeDayRequestDefaultTypeInternal _MarketTradeDayRequest_default_instance_;
constexpr MarketTradeDayResponse::MarketTradeDayResponse(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : trade_day_()
  , half_trade_day_(){}
struct MarketTradeDayResponseDefaultTypeInternal {
  constexpr MarketTradeDayResponseDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~MarketTradeDayResponseDefaultTypeInternal() {}
  union {
    MarketTradeDayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MarketTradeDayResponseDefaultTypeInternal _MarketTradeDayResponse_default_instance_;
}  // namespace v1
}  // namespace quote
}  // namespace longbridgeapp
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_quote_2fapi_2eproto[53];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_quote_2fapi_2eproto[6];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_quote_2fapi_2eproto = nullptr;

const uint32_t TableStruct_quote_2fapi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MultiSecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MultiSecurityRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityStaticInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityStaticInfoResponse, secu_static_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, name_hk_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, listing_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, exchange_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, currency_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, lot_size_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, total_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, circulating_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, hk_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, eps_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, eps_ttm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, bps_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, dividend_yield_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StaticInfo, stock_derivatives_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, pre_market_quote_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityQuote, post_market_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PrePostQuote, prev_close_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionQuote, option_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, open_interest_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, contract_multiplier_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, contract_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, contract_size_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, direction_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, historical_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionExtend, underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantQuote, warrant_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, last_trade_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, category_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantExtend, underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, ask_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityDepthResponse, bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, position_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Depth, order_num_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityBrokersResponse, bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, position_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Brokers, broker_ids_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse, participant_broker_numbers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, broker_ids_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, participant_name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, participant_name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::ParticipantInfo, participant_name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeRequest, count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityTradeResponse, trades_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, trade_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, direction_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Trade, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityIntradayResponse, lines_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Line, avg_price_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, period_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, count_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickRequest, adjust_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SecurityCandlestickResponse, candlesticks_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, close_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::Candlestick, timestamp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateListResponse, expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest, expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse, strike_price_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, call_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, put_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::StrikePriceInfo, standard_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfoResponse, issuer_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, id_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::IssuerInfo, name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, filter_config_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListRequest, language_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, sort_by_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, sort_order_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, sort_offset_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, sort_count_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, issuer_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, price_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterConfig, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, warrant_list_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::WarrantFilterListResponse, total_count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, name_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, change_val_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, premium_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, itm_otm_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, delta_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, to_call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, effective_leverage_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, leverage_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, balance_point_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::FilterWarrant, state_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriodResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriodResponse, market_trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, market_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradePeriod, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, beg_time_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, end_time_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::TradePeriod, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscriptionResponse, sub_list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubTypeList, sub_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::SubscribeRequest, is_first_push_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeRequest, unsub_all_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::UnsubscribeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushQuote, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, ask_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushDepth, bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushBrokers, bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::PushTrade, trade_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, market_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, beg_day_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayRequest, end_day_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, trade_day_),
  PROTOBUF_FIELD_OFFSET(::longbridgeapp::quote::v1::MarketTradeDayResponse, half_trade_day_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityRequest)},
  { 7, -1, -1, sizeof(::longbridgeapp::quote::v1::MultiSecurityRequest)},
  { 14, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityStaticInfoResponse)},
  { 21, -1, -1, sizeof(::longbridgeapp::quote::v1::StaticInfo)},
  { 43, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityQuoteResponse)},
  { 50, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityQuote)},
  { 68, -1, -1, sizeof(::longbridgeapp::quote::v1::PrePostQuote)},
  { 81, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionQuoteResponse)},
  { 88, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionQuote)},
  { 105, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionExtend)},
  { 121, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantQuoteResponse)},
  { 128, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantQuote)},
  { 145, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantExtend)},
  { 163, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityDepthResponse)},
  { 172, -1, -1, sizeof(::longbridgeapp::quote::v1::Depth)},
  { 182, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityBrokersResponse)},
  { 191, -1, -1, sizeof(::longbridgeapp::quote::v1::Brokers)},
  { 199, -1, -1, sizeof(::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse)},
  { 206, -1, -1, sizeof(::longbridgeapp::quote::v1::ParticipantInfo)},
  { 216, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityTradeRequest)},
  { 224, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityTradeResponse)},
  { 232, -1, -1, sizeof(::longbridgeapp::quote::v1::Trade)},
  { 244, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityIntradayRequest)},
  { 251, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityIntradayResponse)},
  { 259, -1, -1, sizeof(::longbridgeapp::quote::v1::Line)},
  { 270, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCandlestickRequest)},
  { 280, -1, -1, sizeof(::longbridgeapp::quote::v1::SecurityCandlestickResponse)},
  { 288, -1, -1, sizeof(::longbridgeapp::quote::v1::Candlestick)},
  { 301, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateListResponse)},
  { 308, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest)},
  { 316, -1, -1, sizeof(::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse)},
  { 323, -1, -1, sizeof(::longbridgeapp::quote::v1::StrikePriceInfo)},
  { 333, -1, -1, sizeof(::longbridgeapp::quote::v1::IssuerInfoResponse)},
  { 340, -1, -1, sizeof(::longbridgeapp::quote::v1::IssuerInfo)},
  { 350, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantFilterListRequest)},
  { 359, -1, -1, sizeof(::longbridgeapp::quote::v1::FilterConfig)},
  { 374, -1, -1, sizeof(::longbridgeapp::quote::v1::WarrantFilterListResponse)},
  { 382, -1, -1, sizeof(::longbridgeapp::quote::v1::FilterWarrant)},
  { 412, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradePeriodResponse)},
  { 419, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradePeriod)},
  { 427, -1, -1, sizeof(::longbridgeapp::quote::v1::TradePeriod)},
  { 436, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscriptionRequest)},
  { 442, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscriptionResponse)},
  { 449, -1, -1, sizeof(::longbridgeapp::quote::v1::SubTypeList)},
  { 457, -1, -1, sizeof(::longbridgeapp::quote::v1::SubscribeRequest)},
  { 466, -1, -1, sizeof(::longbridgeapp::quote::v1::UnsubscribeRequest)},
  { 475, -1, -1, sizeof(::longbridgeapp::quote::v1::UnsubscribeResponse)},
  { 481, -1, -1, sizeof(::longbridgeapp::quote::v1::PushQuote)},
  { 498, -1, -1, sizeof(::longbridgeapp::quote::v1::PushDepth)},
  { 508, -1, -1, sizeof(::longbridgeapp::quote::v1::PushBrokers)},
  { 518, -1, -1, sizeof(::longbridgeapp::quote::v1::PushTrade)},
  { 527, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradeDayRequest)},
  { 536, -1, -1, sizeof(::longbridgeapp::quote::v1::MarketTradeDayResponse)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_MultiSecurityRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityStaticInfoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_StaticInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityQuoteResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityQuote_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_PrePostQuote_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionQuoteResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionQuote_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionExtend_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_WarrantQuoteResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_WarrantQuote_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_WarrantExtend_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityDepthResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_Depth_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityBrokersResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_Brokers_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_ParticipantBrokerIdsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_ParticipantInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityTradeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityTradeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_Trade_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityIntradayRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityIntradayResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_Line_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityCandlestickRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SecurityCandlestickResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_Candlestick_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionChainDateListResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionChainDateStrikeInfoRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_OptionChainDateStrikeInfoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_StrikePriceInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_IssuerInfoResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_IssuerInfo_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_WarrantFilterListRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_FilterConfig_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_WarrantFilterListResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_FilterWarrant_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_MarketTradePeriodResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_MarketTradePeriod_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_TradePeriod_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SubscriptionRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SubscriptionResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SubTypeList_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_SubscribeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_UnsubscribeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_UnsubscribeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_PushQuote_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_PushDepth_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_PushBrokers_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_PushTrade_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_MarketTradeDayRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::longbridgeapp::quote::v1::_MarketTradeDayResponse_default_instance_),
};

const char descriptor_table_protodef_quote_2fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\017quote/api.proto\022\026longbridgeapp.quote.v"
  "1\")\n\017SecurityRequest\022\026\n\006symbol\030\001 \001(\tR\006sy"
  "mbol\".\n\024MultiSecurityRequest\022\026\n\006symbol\030\001"
  " \003(\tR\006symbol\"j\n\032SecurityStaticInfoRespon"
  "se\022L\n\020secu_static_info\030\001 \003(\0132\".longbridg"
  "eapp.quote.v1.StaticInfoR\016secuStaticInfo"
  "\"\345\003\n\nStaticInfo\022\026\n\006symbol\030\001 \001(\tR\006symbol\022"
  "\027\n\007name_cn\030\002 \001(\tR\006nameCn\022\027\n\007name_en\030\003 \001("
  "\tR\006nameEn\022\027\n\007name_hk\030\004 \001(\tR\006nameHk\022!\n\014li"
  "sting_date\030\005 \001(\tR\013listingDate\022\032\n\010exchang"
  "e\030\006 \001(\tR\010exchange\022\032\n\010currency\030\007 \001(\tR\010cur"
  "rency\022\031\n\010lot_size\030\010 \001(\005R\007lotSize\022!\n\014tota"
  "l_shares\030\t \001(\003R\013totalShares\022-\n\022circulati"
  "ng_shares\030\n \001(\003R\021circulatingShares\022\033\n\thk"
  "_shares\030\013 \001(\003R\010hkShares\022\020\n\003eps\030\014 \001(\tR\003ep"
  "s\022\027\n\007eps_ttm\030\r \001(\tR\006epsTtm\022\020\n\003bps\030\016 \001(\tR"
  "\003bps\022%\n\016dividend_yield\030\017 \001(\tR\rdividendYi"
  "eld\022+\n\021stock_derivatives\030\020 \003(\005R\020stockDer"
  "ivatives\"]\n\025SecurityQuoteResponse\022D\n\nsec"
  "u_quote\030\001 \003(\0132%.longbridgeapp.quote.v1.S"
  "ecurityQuoteR\tsecuQuote\"\331\003\n\rSecurityQuot"
  "e\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033\n\tlast_done\030\002"
  " \001(\tR\010lastDone\022\035\n\nprev_close\030\003 \001(\tR\tprev"
  "Close\022\022\n\004open\030\004 \001(\tR\004open\022\022\n\004high\030\005 \001(\tR"
  "\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\ttimestamp\030\007 \001"
  "(\003R\ttimestamp\022\026\n\006volume\030\010 \001(\003R\006volume\022\032\n"
  "\010turnover\030\t \001(\tR\010turnover\022F\n\014trade_statu"
  "s\030\n \001(\0162#.longbridgeapp.quote.v1.TradeSt"
  "atusR\013tradeStatus\022N\n\020pre_market_quote\030\013 "
  "\001(\0132$.longbridgeapp.quote.v1.PrePostQuot"
  "eR\016preMarketQuote\022P\n\021post_market_quote\030\014"
  " \001(\0132$.longbridgeapp.quote.v1.PrePostQuo"
  "teR\017postMarketQuote\"\302\001\n\014PrePostQuote\022\033\n\t"
  "last_done\030\001 \001(\tR\010lastDone\022\034\n\ttimestamp\030\002"
  " \001(\003R\ttimestamp\022\026\n\006volume\030\003 \001(\003R\006volume\022"
  "\032\n\010turnover\030\004 \001(\tR\010turnover\022\022\n\004high\030\005 \001("
  "\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\035\n\nprev_close\030"
  "\007 \001(\tR\tprevClose\"Y\n\023OptionQuoteResponse\022"
  "B\n\nsecu_quote\030\001 \003(\0132#.longbridgeapp.quot"
  "e.v1.OptionQuoteR\tsecuQuote\"\200\003\n\013OptionQu"
  "ote\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033\n\tlast_done"
  "\030\002 \001(\tR\010lastDone\022\035\n\nprev_close\030\003 \001(\tR\tpr"
  "evClose\022\022\n\004open\030\004 \001(\tR\004open\022\022\n\004high\030\005 \001("
  "\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\ttimestamp\030\007"
  " \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001(\003R\006volume\022"
  "\032\n\010turnover\030\t \001(\tR\010turnover\022F\n\014trade_sta"
  "tus\030\n \001(\0162#.longbridgeapp.quote.v1.Trade"
  "StatusR\013tradeStatus\022I\n\roption_extend\030\013 \001"
  "(\0132$.longbridgeapp.quote.v1.OptionExtend"
  "R\014optionExtend\"\241\003\n\014OptionExtend\022-\n\022impli"
  "ed_volatility\030\001 \001(\tR\021impliedVolatility\022#"
  "\n\ropen_interest\030\002 \001(\003R\014openInterest\022\037\n\013e"
  "xpiry_date\030\003 \001(\tR\nexpiryDate\022!\n\014strike_p"
  "rice\030\004 \001(\tR\013strikePrice\022/\n\023contract_mult"
  "iplier\030\005 \001(\tR\022contractMultiplier\022#\n\rcont"
  "ract_type\030\006 \001(\tR\014contractType\022#\n\rcontrac"
  "t_size\030\007 \001(\tR\014contractSize\022\034\n\tdirection\030"
  "\010 \001(\tR\tdirection\0223\n\025historical_volatilit"
  "y\030\t \001(\tR\024historicalVolatility\022+\n\021underly"
  "ing_symbol\030\n \001(\tR\020underlyingSymbol\"[\n\024Wa"
  "rrantQuoteResponse\022C\n\nsecu_quote\030\002 \003(\0132$"
  ".longbridgeapp.quote.v1.WarrantQuoteR\tse"
  "cuQuote\"\204\003\n\014WarrantQuote\022\026\n\006symbol\030\001 \001(\t"
  "R\006symbol\022\033\n\tlast_done\030\002 \001(\tR\010lastDone\022\035\n"
  "\nprev_close\030\003 \001(\tR\tprevClose\022\022\n\004open\030\004 \001"
  "(\tR\004open\022\022\n\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001("
  "\tR\003low\022\034\n\ttimestamp\030\007 \001(\003R\ttimestamp\022\026\n\006"
  "volume\030\010 \001(\003R\006volume\022\032\n\010turnover\030\t \001(\tR\010"
  "turnover\022F\n\014trade_status\030\n \001(\0162#.longbri"
  "dgeapp.quote.v1.TradeStatusR\013tradeStatus"
  "\022L\n\016warrant_extend\030\013 \001(\0132%.longbridgeapp"
  ".quote.v1.WarrantExtendR\rwarrantExtend\"\357"
  "\003\n\rWarrantExtend\022-\n\022implied_volatility\030\001"
  " \001(\tR\021impliedVolatility\022\037\n\013expiry_date\030\002"
  " \001(\tR\nexpiryDate\022&\n\017last_trade_date\030\003 \001("
  "\tR\rlastTradeDate\022+\n\021outstanding_ratio\030\004 "
  "\001(\tR\020outstandingRatio\022\'\n\017outstanding_qty"
  "\030\005 \001(\003R\016outstandingQty\022)\n\020conversion_rat"
  "io\030\006 \001(\tR\017conversionRatio\022\032\n\010category\030\007 "
  "\001(\tR\010category\022!\n\014strike_price\030\010 \001(\tR\013str"
  "ikePrice\022,\n\022upper_strike_price\030\t \001(\tR\020up"
  "perStrikePrice\022,\n\022lower_strike_price\030\n \001"
  "(\tR\020lowerStrikePrice\022\035\n\ncall_price\030\013 \001(\t"
  "R\tcallPrice\022+\n\021underlying_symbol\030\014 \001(\tR\020"
  "underlyingSymbol\"\221\001\n\025SecurityDepthRespon"
  "se\022\026\n\006symbol\030\001 \001(\tR\006symbol\022/\n\003ask\030\002 \003(\0132"
  "\035.longbridgeapp.quote.v1.DepthR\003ask\022/\n\003b"
  "id\030\003 \003(\0132\035.longbridgeapp.quote.v1.DepthR"
  "\003bid\"n\n\005Depth\022\032\n\010position\030\001 \001(\005R\010positio"
  "n\022\024\n\005price\030\002 \001(\tR\005price\022\026\n\006volume\030\003 \001(\003R"
  "\006volume\022\033\n\torder_num\030\004 \001(\003R\010orderNum\"\265\001\n"
  "\027SecurityBrokersResponse\022\026\n\006symbol\030\001 \001(\t"
  "R\006symbol\022@\n\013ask_brokers\030\002 \003(\0132\037.longbrid"
  "geapp.quote.v1.BrokersR\naskBrokers\022@\n\013bi"
  "d_brokers\030\003 \003(\0132\037.longbridgeapp.quote.v1"
  ".BrokersR\nbidBrokers\"D\n\007Brokers\022\032\n\010posit"
  "ion\030\001 \001(\005R\010position\022\035\n\nbroker_ids\030\002 \003(\005R"
  "\tbrokerIds\"\205\001\n\034ParticipantBrokerIdsRespo"
  "nse\022e\n\032participant_broker_numbers\030\001 \003(\0132"
  "\'.longbridgeapp.quote.v1.ParticipantInfo"
  "R\030participantBrokerNumbers\"\300\001\n\017Participa"
  "ntInfo\022\035\n\nbroker_ids\030\001 \003(\005R\tbrokerIds\022.\n"
  "\023participant_name_cn\030\002 \001(\tR\021participantN"
  "ameCn\022.\n\023participant_name_en\030\003 \001(\tR\021part"
  "icipantNameEn\022.\n\023participant_name_hk\030\004 \001"
  "(\tR\021participantNameHk\"D\n\024SecurityTradeRe"
  "quest\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\024\n\005count\030\002"
  " \001(\005R\005count\"f\n\025SecurityTradeResponse\022\026\n\006"
  "symbol\030\001 \001(\tR\006symbol\0225\n\006trades\030\002 \003(\0132\035.l"
  "ongbridgeapp.quote.v1.TradeR\006trades\"\333\001\n\005"
  "Trade\022\024\n\005price\030\001 \001(\tR\005price\022\026\n\006volume\030\002 "
  "\001(\003R\006volume\022\034\n\ttimestamp\030\003 \001(\003R\ttimestam"
  "p\022\035\n\ntrade_type\030\004 \001(\tR\ttradeType\022\034\n\tdire"
  "ction\030\005 \001(\005R\tdirection\022I\n\rtrade_session\030"
  "\006 \001(\0162$.longbridgeapp.quote.v1.TradeSess"
  "ionR\014tradeSession\"1\n\027SecurityIntradayReq"
  "uest\022\026\n\006symbol\030\001 \001(\tR\006symbol\"f\n\030Security"
  "IntradayResponse\022\026\n\006symbol\030\001 \001(\tR\006symbol"
  "\0222\n\005lines\030\002 \003(\0132\034.longbridgeapp.quote.v1"
  ".LineR\005lines\"\213\001\n\004Line\022\024\n\005price\030\001 \001(\tR\005pr"
  "ice\022\034\n\ttimestamp\030\002 \001(\003R\ttimestamp\022\026\n\006vol"
  "ume\030\003 \001(\003R\006volume\022\032\n\010turnover\030\004 \001(\tR\010tur"
  "nover\022\033\n\tavg_price\030\005 \001(\tR\010avgPrice\"\307\001\n\032S"
  "ecurityCandlestickRequest\022\026\n\006symbol\030\001 \001("
  "\tR\006symbol\0226\n\006period\030\002 \001(\0162\036.longbridgeap"
  "p.quote.v1.PeriodR\006period\022\024\n\005count\030\003 \001(\005"
  "R\005count\022C\n\013adjust_type\030\004 \001(\0162\".longbridg"
  "eapp.quote.v1.AdjustTypeR\nadjustType\"~\n\033"
  "SecurityCandlestickResponse\022\026\n\006symbol\030\001 "
  "\001(\tR\006symbol\022G\n\014candlesticks\030\002 \003(\0132#.long"
  "bridgeapp.quote.v1.CandlestickR\014candlest"
  "icks\"\257\001\n\013Candlestick\022\024\n\005close\030\001 \001(\tR\005clo"
  "se\022\022\n\004open\030\002 \001(\tR\004open\022\020\n\003low\030\003 \001(\tR\003low"
  "\022\022\n\004high\030\004 \001(\tR\004high\022\026\n\006volume\030\005 \001(\003R\006vo"
  "lume\022\032\n\010turnover\030\006 \001(\tR\010turnover\022\034\n\ttime"
  "stamp\030\007 \001(\003R\ttimestamp\">\n\033OptionChainDat"
  "eListResponse\022\037\n\013expiry_date\030\001 \003(\tR\nexpi"
  "ryDate\"[\n OptionChainDateStrikeInfoReque"
  "st\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\037\n\013expiry_dat"
  "e\030\002 \001(\tR\nexpiryDate\"x\n!OptionChainDateSt"
  "rikeInfoResponse\022S\n\021strike_price_info\030\001 "
  "\003(\0132\'.longbridgeapp.quote.v1.StrikePrice"
  "InfoR\017strikePriceInfo\"\203\001\n\017StrikePriceInf"
  "o\022\024\n\005price\030\001 \001(\tR\005price\022\037\n\013call_symbol\030\002"
  " \001(\tR\ncallSymbol\022\035\n\nput_symbol\030\003 \001(\tR\tpu"
  "tSymbol\022\032\n\010standard\030\004 \001(\010R\010standard\"Y\n\022I"
  "ssuerInfoResponse\022C\n\013issuer_info\030\001 \003(\0132\""
  ".longbridgeapp.quote.v1.IssuerInfoR\nissu"
  "erInfo\"g\n\nIssuerInfo\022\016\n\002id\030\001 \001(\005R\002id\022\027\n\007"
  "name_cn\030\002 \001(\tR\006nameCn\022\027\n\007name_en\030\003 \001(\tR\006"
  "nameEn\022\027\n\007name_hk\030\004 \001(\tR\006nameHk\"\231\001\n\030Warr"
  "antFilterListRequest\022\026\n\006symbol\030\001 \001(\tR\006sy"
  "mbol\022I\n\rfilter_config\030\002 \001(\0132$.longbridge"
  "app.quote.v1.FilterConfigR\014filterConfig\022"
  "\032\n\010language\030\003 \001(\005R\010language\"\212\002\n\014FilterCo"
  "nfig\022\027\n\007sort_by\030\001 \001(\005R\006sortBy\022\035\n\nsort_or"
  "der\030\002 \001(\005R\tsortOrder\022\037\n\013sort_offset\030\003 \001("
  "\005R\nsortOffset\022\035\n\nsort_count\030\004 \001(\005R\tsortC"
  "ount\022\022\n\004type\030\005 \003(\005R\004type\022\026\n\006issuer\030\006 \003(\005"
  "R\006issuer\022\037\n\013expiry_date\030\007 \003(\005R\nexpiryDat"
  "e\022\035\n\nprice_type\030\010 \003(\005R\tpriceType\022\026\n\006stat"
  "us\030\t \003(\005R\006status\"\206\001\n\031WarrantFilterListRe"
  "sponse\022H\n\014warrant_list\030\001 \003(\0132%.longbridg"
  "eapp.quote.v1.FilterWarrantR\013warrantList"
  "\022\037\n\013total_count\030\002 \001(\005R\ntotalCount\"\271\006\n\rFi"
  "lterWarrant\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\022\n\004n"
  "ame\030\002 \001(\tR\004name\022\033\n\tlast_done\030\003 \001(\tR\010last"
  "Done\022\037\n\013change_rate\030\004 \001(\tR\nchangeRate\022\035\n"
  "\nchange_val\030\005 \001(\tR\tchangeVal\022\026\n\006volume\030\006"
  " \001(\003R\006volume\022\032\n\010turnover\030\007 \001(\tR\010turnover"
  "\022\037\n\013expiry_date\030\010 \001(\tR\nexpiryDate\022!\n\014str"
  "ike_price\030\t \001(\tR\013strikePrice\022,\n\022upper_st"
  "rike_price\030\n \001(\tR\020upperStrikePrice\022,\n\022lo"
  "wer_strike_price\030\013 \001(\tR\020lowerStrikePrice"
  "\022\'\n\017outstanding_qty\030\014 \001(\tR\016outstandingQt"
  "y\022+\n\021outstanding_ratio\030\r \001(\tR\020outstandin"
  "gRatio\022\030\n\007premium\030\016 \001(\tR\007premium\022\027\n\007itm_"
  "otm\030\017 \001(\tR\006itmOtm\022-\n\022implied_volatility\030"
  "\020 \001(\tR\021impliedVolatility\022\024\n\005delta\030\021 \001(\tR"
  "\005delta\022\035\n\ncall_price\030\022 \001(\tR\tcallPrice\022\"\n"
  "\rto_call_price\030\023 \001(\tR\013toCallPrice\022-\n\022eff"
  "ective_leverage\030\024 \001(\tR\021effectiveLeverage"
  "\022%\n\016leverage_ratio\030\025 \001(\tR\rleverageRatio\022"
  ")\n\020conversion_ratio\030\026 \001(\tR\017conversionRat"
  "io\022#\n\rbalance_point\030\027 \001(\tR\014balancePoint\022"
  "\024\n\005state\030\030 \001(\tR\005state\"x\n\031MarketTradePeri"
  "odResponse\022[\n\024market_trade_session\030\001 \003(\013"
  "2).longbridgeapp.quote.v1.MarketTradePer"
  "iodR\022marketTradeSession\"u\n\021MarketTradePe"
  "riod\022\026\n\006market\030\001 \001(\tR\006market\022H\n\rtrade_se"
  "ssion\030\002 \003(\0132#.longbridgeapp.quote.v1.Tra"
  "dePeriodR\014tradeSession\"\216\001\n\013TradePeriod\022\031"
  "\n\010beg_time\030\001 \001(\005R\007begTime\022\031\n\010end_time\030\002 "
  "\001(\005R\007endTime\022I\n\rtrade_session\030\003 \001(\0162$.lo"
  "ngbridgeapp.quote.v1.TradeSessionR\014trade"
  "Session\"\025\n\023SubscriptionRequest\"V\n\024Subscr"
  "iptionResponse\022>\n\010sub_list\030\001 \003(\0132#.longb"
  "ridgeapp.quote.v1.SubTypeListR\007subList\"a"
  "\n\013SubTypeList\022\026\n\006symbol\030\001 \001(\tR\006symbol\022:\n"
  "\010sub_type\030\002 \003(\0162\037.longbridgeapp.quote.v1"
  ".SubTypeR\007subType\"\212\001\n\020SubscribeRequest\022\026"
  "\n\006symbol\030\001 \003(\tR\006symbol\022:\n\010sub_type\030\002 \003(\016"
  "2\037.longbridgeapp.quote.v1.SubTypeR\007subTy"
  "pe\022\"\n\ris_first_push\030\003 \001(\010R\013isFirstPush\"\205"
  "\001\n\022UnsubscribeRequest\022\026\n\006symbol\030\001 \003(\tR\006s"
  "ymbol\022:\n\010sub_type\030\002 \003(\0162\037.longbridgeapp."
  "quote.v1.SubTypeR\007subType\022\033\n\tunsub_all\030\003"
  " \001(\010R\010unsubAll\"\025\n\023UnsubscribeResponse\"\373\002"
  "\n\tPushQuote\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\032\n\010s"
  "equence\030\002 \001(\003R\010sequence\022\033\n\tlast_done\030\003 \001"
  "(\tR\010lastDone\022\022\n\004open\030\004 \001(\tR\004open\022\022\n\004high"
  "\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\ttimest"
  "amp\030\007 \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001(\003R\006vo"
  "lume\022\032\n\010turnover\030\t \001(\tR\010turnover\022F\n\014trad"
  "e_status\030\n \001(\0162#.longbridgeapp.quote.v1."
  "TradeStatusR\013tradeStatus\022I\n\rtrade_sessio"
  "n\030\013 \001(\0162$.longbridgeapp.quote.v1.TradeSe"
  "ssionR\014tradeSession\"\241\001\n\tPushDepth\022\026\n\006sym"
  "bol\030\001 \001(\tR\006symbol\022\032\n\010sequence\030\002 \001(\003R\010seq"
  "uence\022/\n\003ask\030\003 \003(\0132\035.longbridgeapp.quote"
  ".v1.DepthR\003ask\022/\n\003bid\030\004 \003(\0132\035.longbridge"
  "app.quote.v1.DepthR\003bid\"\305\001\n\013PushBrokers\022"
  "\026\n\006symbol\030\001 \001(\tR\006symbol\022\032\n\010sequence\030\002 \001("
  "\003R\010sequence\022@\n\013ask_brokers\030\003 \003(\0132\037.longb"
  "ridgeapp.quote.v1.BrokersR\naskBrokers\022@\n"
  "\013bid_brokers\030\004 \003(\0132\037.longbridgeapp.quote"
  ".v1.BrokersR\nbidBrokers\"t\n\tPushTrade\022\026\n\006"
  "symbol\030\001 \001(\tR\006symbol\022\032\n\010sequence\030\002 \001(\003R\010"
  "sequence\0223\n\005trade\030\003 \003(\0132\035.longbridgeapp."
  "quote.v1.TradeR\005trade\"a\n\025MarketTradeDayR"
  "equest\022\026\n\006market\030\001 \001(\tR\006market\022\027\n\007beg_da"
  "y\030\002 \001(\tR\006begDay\022\027\n\007end_day\030\003 \001(\tR\006endDay"
  "\"[\n\026MarketTradeDayResponse\022\033\n\ttrade_day\030"
  "\001 \003(\tR\010tradeDay\022$\n\016half_trade_day\030\002 \003(\tR"
  "\014halfTradeDay*\316\004\n\007Command\022\023\n\017UNKNOWN_COM"
  "MAND\020\000\022\016\n\nHEART_BEAT\020\001\022\010\n\004AUTH\020\002\022\r\n\tRECO"
  "NNECT\020\003\022\020\n\014Subscription\020\005\022\r\n\tSubscribe\020\006"
  "\022\017\n\013Unsubscribe\020\007\022\032\n\026QueryMarketTradePer"
  "iod\020\010\022\027\n\023QueryMarketTradeDay\020\t\022\033\n\027QueryS"
  "ecurityStaticInfo\020\n\022\026\n\022QuerySecurityQuot"
  "e\020\013\022\024\n\020QueryOptionQuote\020\014\022\025\n\021QueryWarran"
  "tQuote\020\r\022\016\n\nQueryDepth\020\016\022\020\n\014QueryBrokers"
  "\020\017\022\035\n\031QueryParticipantBrokerIds\020\020\022\016\n\nQue"
  "ryTrade\020\021\022\021\n\rQueryIntraday\020\022\022\024\n\020QueryCan"
  "dlestick\020\023\022\030\n\024QueryOptionChainDate\020\024\022\"\n\036"
  "QueryOptionChainDateStrikeInfo\020\025\022\032\n\026Quer"
  "yWarrantIssuerInfo\020\026\022\032\n\026QueryWarrantFilt"
  "erList\020\027\022\021\n\rPushQuoteData\020e\022\021\n\rPushDepth"
  "Data\020f\022\023\n\017PushBrokersData\020g\022\021\n\rPushTrade"
  "Data\020h*\302\001\n\013TradeStatus\022\n\n\006NORMAL\020\000\022\n\n\006HA"
  "LTED\020\001\022\014\n\010DELISTED\020\002\022\010\n\004FUSE\020\003\022\020\n\014PREPAR"
  "E_LIST\020\004\022\016\n\nCODE_MOVED\020\005\022\020\n\014TO_BE_OPENED"
  "\020\006\022\025\n\021SPLIT_STOCK_HALTS\020\007\022\013\n\007EXPIRED\020\010\022\030"
  "\n\024WARRANT_PREPARE_LIST\020\t\022\021\n\rSUSPEND_TRAD"
  "E\020\n*\?\n\014TradeSession\022\020\n\014NORMAL_TRADE\020\000\022\r\n"
  "\tPRE_TRADE\020\001\022\016\n\nPOST_TRADE\020\002*/\n\nAdjustTy"
  "pe\022\r\n\tNO_ADJUST\020\000\022\022\n\016FORWARD_ADJUST\020\001*\242\001"
  "\n\006Period\022\022\n\016UNKNOWN_PERIOD\020\000\022\016\n\nONE_MINU"
  "TE\020\001\022\017\n\013FIVE_MINUTE\020\005\022\022\n\016FIFTEEN_MINUTE\020"
  "\017\022\021\n\rTHIRTY_MINUTE\020\036\022\020\n\014SIXTY_MINUTE\020<\022\010"
  "\n\003DAY\020\350\007\022\t\n\004WEEK\020\320\017\022\n\n\005MONTH\020\270\027\022\t\n\004YEAR\020"
  "\240\037*I\n\007SubType\022\020\n\014UNKNOWN_TYPE\020\000\022\t\n\005QUOTE"
  "\020\001\022\t\n\005DEPTH\020\002\022\013\n\007BROKERS\020\003\022\t\n\005TRADE\020\004B\341\001"
  "\n\032com.longbridgeapp.quote.v1B\010ApiProtoP\001"
  "Z\?github.com/longbridgeapp/openapi-proto"
  "bufs/gen/go/quote;quotev1\242\002\003LQX\252\002\026Longbr"
  "idgeapp.Quote.V1\312\002\026Longbridgeapp\\Quote\\V"
  "1\342\002\"Longbridgeapp\\Quote\\V1\\GPBMetadata\352\002"
  "\030Longbridgeapp::Quote::V1b\006proto3"
  ;
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_quote_2fapi_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_quote_2fapi_2eproto = {
  false, false, 10753, descriptor_table_protodef_quote_2fapi_2eproto, "quote/api.proto", 
  &descriptor_table_quote_2fapi_2eproto_once, nullptr, 0, 53,
  schemas, file_default_instances, TableStruct_quote_2fapi_2eproto::offsets,
  file_level_metadata_quote_2fapi_2eproto, file_level_enum_descriptors_quote_2fapi_2eproto, file_level_service_descriptors_quote_2fapi_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_quote_2fapi_2eproto_getter() {
  return &descriptor_table_quote_2fapi_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_quote_2fapi_2eproto(&descriptor_table_quote_2fapi_2eproto);
namespace longbridgeapp {
namespace quote {
namespace v1 {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Command_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[0];
}
bool Command_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 101:
    case 102:
    case 103:
    case 104:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[1];
}
bool TradeStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeSession_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[2];
}
bool TradeSession_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AdjustType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[3];
}
bool AdjustType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Period_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[4];
}
bool Period_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 5:
    case 15:
    case 30:
    case 60:
    case 1000:
    case 2000:
    case 3000:
    case 4000:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SubType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[5];
}
bool SubType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}


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

class SecurityRequest::_Internal {
 public:
};

SecurityRequest::SecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityRequest)
}
SecurityRequest::SecurityRequest(const SecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityRequest)
}

inline void SecurityRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityRequest::~SecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityRequest::ArenaDtor(void* object) {
  SecurityRequest* _this = reinterpret_cast< SecurityRequest* >(object);
  (void)_this;
}
void SecurityRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityRequest)
  return target;
}

size_t SecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityRequest::GetClassData() const { return &_class_data_; }

void SecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityRequest *>(to)->MergeFrom(
      static_cast<const SecurityRequest &>(from));
}


void SecurityRequest::MergeFrom(const SecurityRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityRequest::CopyFrom(const SecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityRequest::IsInitialized() const {
  return true;
}

void SecurityRequest::InternalSwap(SecurityRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[0]);
}

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

class MultiSecurityRequest::_Internal {
 public:
};

MultiSecurityRequest::MultiSecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MultiSecurityRequest)
}
MultiSecurityRequest::MultiSecurityRequest(const MultiSecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MultiSecurityRequest)
}

inline void MultiSecurityRequest::SharedCtor() {
}

MultiSecurityRequest::~MultiSecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MultiSecurityRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void MultiSecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MultiSecurityRequest::ArenaDtor(void* object) {
  MultiSecurityRequest* _this = reinterpret_cast< MultiSecurityRequest* >(object);
  (void)_this;
}
void MultiSecurityRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MultiSecurityRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MultiSecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MultiSecurityRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MultiSecurityRequest.symbol"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MultiSecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MultiSecurityRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MultiSecurityRequest)
  return target;
}

size_t MultiSecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MultiSecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MultiSecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MultiSecurityRequest::GetClassData() const { return &_class_data_; }

void MultiSecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MultiSecurityRequest *>(to)->MergeFrom(
      static_cast<const MultiSecurityRequest &>(from));
}


void MultiSecurityRequest::MergeFrom(const MultiSecurityRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MultiSecurityRequest::CopyFrom(const MultiSecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MultiSecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MultiSecurityRequest::IsInitialized() const {
  return true;
}

void MultiSecurityRequest::InternalSwap(MultiSecurityRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MultiSecurityRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[1]);
}

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

class SecurityStaticInfoResponse::_Internal {
 public:
};

SecurityStaticInfoResponse::SecurityStaticInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_static_info_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
}
SecurityStaticInfoResponse::SecurityStaticInfoResponse(const SecurityStaticInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_static_info_(from.secu_static_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
}

inline void SecurityStaticInfoResponse::SharedCtor() {
}

SecurityStaticInfoResponse::~SecurityStaticInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityStaticInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityStaticInfoResponse::ArenaDtor(void* object) {
  SecurityStaticInfoResponse* _this = reinterpret_cast< SecurityStaticInfoResponse* >(object);
  (void)_this;
}
void SecurityStaticInfoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityStaticInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityStaticInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_static_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityStaticInfoResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_static_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityStaticInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_secu_static_info_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_secu_static_info(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  return target;
}

size_t SecurityStaticInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  total_size += 1UL * this->_internal_secu_static_info_size();
  for (const auto& msg : this->secu_static_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityStaticInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityStaticInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityStaticInfoResponse::GetClassData() const { return &_class_data_; }

void SecurityStaticInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityStaticInfoResponse *>(to)->MergeFrom(
      static_cast<const SecurityStaticInfoResponse &>(from));
}


void SecurityStaticInfoResponse::MergeFrom(const SecurityStaticInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_static_info_.MergeFrom(from.secu_static_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityStaticInfoResponse::CopyFrom(const SecurityStaticInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityStaticInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityStaticInfoResponse::IsInitialized() const {
  return true;
}

void SecurityStaticInfoResponse::InternalSwap(SecurityStaticInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_static_info_.InternalSwap(&other->secu_static_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityStaticInfoResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[2]);
}

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

class StaticInfo::_Internal {
 public:
};

StaticInfo::StaticInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  stock_derivatives_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.StaticInfo)
}
StaticInfo::StaticInfo(const StaticInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      stock_derivatives_(from.stock_derivatives_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    name_cn_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_cn(), 
      GetArenaForAllocation());
  }
  name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    name_en_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_en(), 
      GetArenaForAllocation());
  }
  name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    name_hk_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_hk(), 
      GetArenaForAllocation());
  }
  listing_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    listing_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_listing_date().empty()) {
    listing_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_listing_date(), 
      GetArenaForAllocation());
  }
  exchange_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    exchange_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_exchange().empty()) {
    exchange_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_exchange(), 
      GetArenaForAllocation());
  }
  currency_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    currency_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_currency().empty()) {
    currency_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_currency(), 
      GetArenaForAllocation());
  }
  eps_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    eps_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps().empty()) {
    eps_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_eps(), 
      GetArenaForAllocation());
  }
  eps_ttm_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    eps_ttm_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps_ttm().empty()) {
    eps_ttm_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_eps_ttm(), 
      GetArenaForAllocation());
  }
  bps_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    bps_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_bps().empty()) {
    bps_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_bps(), 
      GetArenaForAllocation());
  }
  dividend_yield_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    dividend_yield_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dividend_yield().empty()) {
    dividend_yield_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_dividend_yield(), 
      GetArenaForAllocation());
  }
  ::memcpy(&total_shares_, &from.total_shares_,
    static_cast<size_t>(reinterpret_cast<char*>(&lot_size_) -
    reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.StaticInfo)
}

inline void StaticInfo::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
listing_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  listing_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
exchange_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  exchange_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
currency_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  currency_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
eps_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  eps_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
eps_ttm_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  eps_ttm_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
bps_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  bps_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
dividend_yield_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  dividend_yield_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&total_shares_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&lot_size_) -
    reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
}

StaticInfo::~StaticInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.StaticInfo)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void StaticInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_cn_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_en_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_hk_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  listing_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  exchange_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  currency_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  eps_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  eps_ttm_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  bps_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  dividend_yield_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void StaticInfo::ArenaDtor(void* object) {
  StaticInfo* _this = reinterpret_cast< StaticInfo* >(object);
  (void)_this;
}
void StaticInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void StaticInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void StaticInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  stock_derivatives_.Clear();
  symbol_.ClearToEmpty();
  name_cn_.ClearToEmpty();
  name_en_.ClearToEmpty();
  name_hk_.ClearToEmpty();
  listing_date_.ClearToEmpty();
  exchange_.ClearToEmpty();
  currency_.ClearToEmpty();
  eps_.ClearToEmpty();
  eps_ttm_.ClearToEmpty();
  bps_.ClearToEmpty();
  dividend_yield_.ClearToEmpty();
  ::memset(&total_shares_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&lot_size_) -
      reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StaticInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_cn"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_en"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.name_hk"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string listing_date = 5 [json_name = "listingDate"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_listing_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.listing_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string exchange = 6 [json_name = "exchange"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_exchange();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.exchange"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string currency = 7 [json_name = "currency"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_currency();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.currency"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 lot_size = 8 [json_name = "lotSize"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          lot_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 total_shares = 9 [json_name = "totalShares"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          total_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 circulating_shares = 10 [json_name = "circulatingShares"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          circulating_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 hk_shares = 11 [json_name = "hkShares"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          hk_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string eps = 12 [json_name = "eps"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_eps();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.eps"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string eps_ttm = 13 [json_name = "epsTtm"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_eps_ttm();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.eps_ttm"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string bps = 14 [json_name = "bps"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_bps();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.bps"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string dividend_yield = 15 [json_name = "dividendYield"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_dividend_yield();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StaticInfo.dividend_yield"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_stock_derivatives(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 128) {
          _internal_add_stock_derivatives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StaticInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_listing_date().data(), static_cast<int>(this->_internal_listing_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.listing_date");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_listing_date(), target);
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_exchange().data(), static_cast<int>(this->_internal_exchange().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.exchange");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_exchange(), target);
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_currency().data(), static_cast<int>(this->_internal_currency().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.currency");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_currency(), target);
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_lot_size(), target);
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(9, this->_internal_total_shares(), target);
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_circulating_shares(), target);
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_hk_shares(), target);
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps().data(), static_cast<int>(this->_internal_eps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.eps");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_eps(), target);
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps_ttm().data(), static_cast<int>(this->_internal_eps_ttm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.eps_ttm");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_eps_ttm(), target);
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_bps().data(), static_cast<int>(this->_internal_bps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.bps");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_bps(), target);
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dividend_yield().data(), static_cast<int>(this->_internal_dividend_yield().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StaticInfo.dividend_yield");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_dividend_yield(), target);
  }

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    int byte_size = _stock_derivatives_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          16, _internal_stock_derivatives(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.StaticInfo)
  return target;
}

size_t StaticInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.StaticInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->stock_derivatives_);
    if (data_size > 0) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _stock_derivatives_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_listing_date());
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_exchange());
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_currency());
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps());
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps_ttm());
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_bps());
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dividend_yield());
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_total_shares());
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_circulating_shares());
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_hk_shares());
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_lot_size());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StaticInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    StaticInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StaticInfo::GetClassData() const { return &_class_data_; }

void StaticInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<StaticInfo *>(to)->MergeFrom(
      static_cast<const StaticInfo &>(from));
}


void StaticInfo::MergeFrom(const StaticInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.StaticInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  stock_derivatives_.MergeFrom(from.stock_derivatives_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name_cn().empty()) {
    _internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _internal_set_name_hk(from._internal_name_hk());
  }
  if (!from._internal_listing_date().empty()) {
    _internal_set_listing_date(from._internal_listing_date());
  }
  if (!from._internal_exchange().empty()) {
    _internal_set_exchange(from._internal_exchange());
  }
  if (!from._internal_currency().empty()) {
    _internal_set_currency(from._internal_currency());
  }
  if (!from._internal_eps().empty()) {
    _internal_set_eps(from._internal_eps());
  }
  if (!from._internal_eps_ttm().empty()) {
    _internal_set_eps_ttm(from._internal_eps_ttm());
  }
  if (!from._internal_bps().empty()) {
    _internal_set_bps(from._internal_bps());
  }
  if (!from._internal_dividend_yield().empty()) {
    _internal_set_dividend_yield(from._internal_dividend_yield());
  }
  if (from._internal_total_shares() != 0) {
    _internal_set_total_shares(from._internal_total_shares());
  }
  if (from._internal_circulating_shares() != 0) {
    _internal_set_circulating_shares(from._internal_circulating_shares());
  }
  if (from._internal_hk_shares() != 0) {
    _internal_set_hk_shares(from._internal_hk_shares());
  }
  if (from._internal_lot_size() != 0) {
    _internal_set_lot_size(from._internal_lot_size());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StaticInfo::CopyFrom(const StaticInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.StaticInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StaticInfo::IsInitialized() const {
  return true;
}

void StaticInfo::InternalSwap(StaticInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  stock_derivatives_.InternalSwap(&other->stock_derivatives_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_cn_, lhs_arena,
      &other->name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_en_, lhs_arena,
      &other->name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_hk_, lhs_arena,
      &other->name_hk_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &listing_date_, lhs_arena,
      &other->listing_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &exchange_, lhs_arena,
      &other->exchange_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &currency_, lhs_arena,
      &other->currency_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &eps_, lhs_arena,
      &other->eps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &eps_ttm_, lhs_arena,
      &other->eps_ttm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &bps_, lhs_arena,
      &other->bps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &dividend_yield_, lhs_arena,
      &other->dividend_yield_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(StaticInfo, lot_size_)
      + sizeof(StaticInfo::lot_size_)
      - PROTOBUF_FIELD_OFFSET(StaticInfo, total_shares_)>(
          reinterpret_cast<char*>(&total_shares_),
          reinterpret_cast<char*>(&other->total_shares_));
}

::PROTOBUF_NAMESPACE_ID::Metadata StaticInfo::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[3]);
}

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

class SecurityQuoteResponse::_Internal {
 public:
};

SecurityQuoteResponse::SecurityQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
}
SecurityQuoteResponse::SecurityQuoteResponse(const SecurityQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
}

inline void SecurityQuoteResponse::SharedCtor() {
}

SecurityQuoteResponse::~SecurityQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityQuoteResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityQuoteResponse::ArenaDtor(void* object) {
  SecurityQuoteResponse* _this = reinterpret_cast< SecurityQuoteResponse* >(object);
  (void)_this;
}
void SecurityQuoteResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuoteResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_secu_quote_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_secu_quote(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityQuoteResponse)
  return target;
}

size_t SecurityQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuoteResponse::GetClassData() const { return &_class_data_; }

void SecurityQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityQuoteResponse *>(to)->MergeFrom(
      static_cast<const SecurityQuoteResponse &>(from));
}


void SecurityQuoteResponse::MergeFrom(const SecurityQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuoteResponse::CopyFrom(const SecurityQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuoteResponse::IsInitialized() const {
  return true;
}

void SecurityQuoteResponse::InternalSwap(SecurityQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuoteResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[4]);
}

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

class SecurityQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::PrePostQuote& pre_market_quote(const SecurityQuote* msg);
  static const ::longbridgeapp::quote::v1::PrePostQuote& post_market_quote(const SecurityQuote* msg);
};

const ::longbridgeapp::quote::v1::PrePostQuote&
SecurityQuote::_Internal::pre_market_quote(const SecurityQuote* msg) {
  return *msg->pre_market_quote_;
}
const ::longbridgeapp::quote::v1::PrePostQuote&
SecurityQuote::_Internal::post_market_quote(const SecurityQuote* msg) {
  return *msg->post_market_quote_;
}
SecurityQuote::SecurityQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityQuote)
}
SecurityQuote::SecurityQuote(const SecurityQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_pre_market_quote()) {
    pre_market_quote_ = new ::longbridgeapp::quote::v1::PrePostQuote(*from.pre_market_quote_);
  } else {
    pre_market_quote_ = nullptr;
  }
  if (from._internal_has_post_market_quote()) {
    post_market_quote_ = new ::longbridgeapp::quote::v1::PrePostQuote(*from.post_market_quote_);
  } else {
    post_market_quote_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityQuote)
}

inline void SecurityQuote::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&pre_market_quote_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&pre_market_quote_)) + sizeof(trade_status_));
}

SecurityQuote::~SecurityQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityQuote)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  prev_close_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  open_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete pre_market_quote_;
  if (this != internal_default_instance()) delete post_market_quote_;
}

void SecurityQuote::ArenaDtor(void* object) {
  SecurityQuote* _this = reinterpret_cast< SecurityQuote* >(object);
  (void)_this;
}
void SecurityQuote::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && pre_market_quote_ != nullptr) {
    delete pre_market_quote_;
  }
  pre_market_quote_ = nullptr;
  if (GetArenaForAllocation() == nullptr && post_market_quote_ != nullptr) {
    delete post_market_quote_;
  }
  post_market_quote_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuote::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.prev_close"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.open"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityQuote.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_pre_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_post_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::pre_market_quote(this), target, stream);
  }

  // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        12, _Internal::post_market_quote(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityQuote)
  return target;
}

size_t SecurityQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pre_market_quote_);
  }

  // .longbridgeapp.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *post_market_quote_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuote::GetClassData() const { return &_class_data_; }

void SecurityQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityQuote *>(to)->MergeFrom(
      static_cast<const SecurityQuote &>(from));
}


void SecurityQuote::MergeFrom(const SecurityQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_pre_market_quote()) {
    _internal_mutable_pre_market_quote()->::longbridgeapp::quote::v1::PrePostQuote::MergeFrom(from._internal_pre_market_quote());
  }
  if (from._internal_has_post_market_quote()) {
    _internal_mutable_post_market_quote()->::longbridgeapp::quote::v1::PrePostQuote::MergeFrom(from._internal_post_market_quote());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuote::CopyFrom(const SecurityQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuote::IsInitialized() const {
  return true;
}

void SecurityQuote::InternalSwap(SecurityQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityQuote, trade_status_)
      + sizeof(SecurityQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(SecurityQuote, pre_market_quote_)>(
          reinterpret_cast<char*>(&pre_market_quote_),
          reinterpret_cast<char*>(&other->pre_market_quote_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuote::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[5]);
}

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

class PrePostQuote::_Internal {
 public:
};

PrePostQuote::PrePostQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PrePostQuote)
}
PrePostQuote::PrePostQuote(const PrePostQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PrePostQuote)
}

inline void PrePostQuote::SharedCtor() {
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&timestamp_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
}

PrePostQuote::~PrePostQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PrePostQuote)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void PrePostQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  prev_close_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PrePostQuote::ArenaDtor(void* object) {
  PrePostQuote* _this = reinterpret_cast< PrePostQuote* >(object);
  (void)_this;
}
void PrePostQuote::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PrePostQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PrePostQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  last_done_.ClearToEmpty();
  turnover_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&volume_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PrePostQuote::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string last_done = 1 [json_name = "lastDone"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 7 [json_name = "prevClose"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PrePostQuote.prev_close"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PrePostQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_last_done(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PrePostQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_prev_close(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PrePostQuote)
  return target;
}

size_t PrePostQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PrePostQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PrePostQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PrePostQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PrePostQuote::GetClassData() const { return &_class_data_; }

void PrePostQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PrePostQuote *>(to)->MergeFrom(
      static_cast<const PrePostQuote &>(from));
}


void PrePostQuote::MergeFrom(const PrePostQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PrePostQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PrePostQuote::CopyFrom(const PrePostQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PrePostQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PrePostQuote::IsInitialized() const {
  return true;
}

void PrePostQuote::InternalSwap(PrePostQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PrePostQuote, volume_)
      + sizeof(PrePostQuote::volume_)
      - PROTOBUF_FIELD_OFFSET(PrePostQuote, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PrePostQuote::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[6]);
}

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

class OptionQuoteResponse::_Internal {
 public:
};

OptionQuoteResponse::OptionQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionQuoteResponse)
}
OptionQuoteResponse::OptionQuoteResponse(const OptionQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionQuoteResponse)
}

inline void OptionQuoteResponse::SharedCtor() {
}

OptionQuoteResponse::~OptionQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionQuoteResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionQuoteResponse::ArenaDtor(void* object) {
  OptionQuoteResponse* _this = reinterpret_cast< OptionQuoteResponse* >(object);
  (void)_this;
}
void OptionQuoteResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuoteResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_secu_quote_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_secu_quote(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionQuoteResponse)
  return target;
}

size_t OptionQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuoteResponse::GetClassData() const { return &_class_data_; }

void OptionQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionQuoteResponse *>(to)->MergeFrom(
      static_cast<const OptionQuoteResponse &>(from));
}


void OptionQuoteResponse::MergeFrom(const OptionQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuoteResponse::CopyFrom(const OptionQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuoteResponse::IsInitialized() const {
  return true;
}

void OptionQuoteResponse::InternalSwap(OptionQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuoteResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[7]);
}

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

class OptionQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::OptionExtend& option_extend(const OptionQuote* msg);
};

const ::longbridgeapp::quote::v1::OptionExtend&
OptionQuote::_Internal::option_extend(const OptionQuote* msg) {
  return *msg->option_extend_;
}
OptionQuote::OptionQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionQuote)
}
OptionQuote::OptionQuote(const OptionQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_option_extend()) {
    option_extend_ = new ::longbridgeapp::quote::v1::OptionExtend(*from.option_extend_);
  } else {
    option_extend_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionQuote)
}

inline void OptionQuote::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&option_extend_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&option_extend_)) + sizeof(trade_status_));
}

OptionQuote::~OptionQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionQuote)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  prev_close_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  open_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete option_extend_;
}

void OptionQuote::ArenaDtor(void* object) {
  OptionQuote* _this = reinterpret_cast< OptionQuote* >(object);
  (void)_this;
}
void OptionQuote::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && option_extend_ != nullptr) {
    delete option_extend_;
  }
  option_extend_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuote::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.prev_close"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.open"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionQuote.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_option_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::option_extend(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionQuote)
  return target;
}

size_t OptionQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *option_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuote::GetClassData() const { return &_class_data_; }

void OptionQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionQuote *>(to)->MergeFrom(
      static_cast<const OptionQuote &>(from));
}


void OptionQuote::MergeFrom(const OptionQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_option_extend()) {
    _internal_mutable_option_extend()->::longbridgeapp::quote::v1::OptionExtend::MergeFrom(from._internal_option_extend());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuote::CopyFrom(const OptionQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuote::IsInitialized() const {
  return true;
}

void OptionQuote::InternalSwap(OptionQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OptionQuote, trade_status_)
      + sizeof(OptionQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(OptionQuote, option_extend_)>(
          reinterpret_cast<char*>(&option_extend_),
          reinterpret_cast<char*>(&other->option_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuote::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[8]);
}

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

class OptionExtend::_Internal {
 public:
};

OptionExtend::OptionExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionExtend)
}
OptionExtend::OptionExtend(const OptionExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  contract_multiplier_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_multiplier_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_multiplier().empty()) {
    contract_multiplier_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_contract_multiplier(), 
      GetArenaForAllocation());
  }
  contract_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_type().empty()) {
    contract_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_contract_type(), 
      GetArenaForAllocation());
  }
  contract_size_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_size_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_size().empty()) {
    contract_size_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_contract_size(), 
      GetArenaForAllocation());
  }
  direction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    direction_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_direction().empty()) {
    direction_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_direction(), 
      GetArenaForAllocation());
  }
  historical_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    historical_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_historical_volatility().empty()) {
    historical_volatility_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_historical_volatility(), 
      GetArenaForAllocation());
  }
  underlying_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    underlying_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    underlying_symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_underlying_symbol(), 
      GetArenaForAllocation());
  }
  open_interest_ = from.open_interest_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionExtend)
}

inline void OptionExtend::SharedCtor() {
implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_multiplier_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_multiplier_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_size_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_size_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
direction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  direction_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
historical_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  historical_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
underlying_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  underlying_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_interest_ = int64_t{0};
}

OptionExtend::~OptionExtend() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionExtend)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  implied_volatility_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  expiry_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  contract_multiplier_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  contract_type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  contract_size_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  direction_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  historical_volatility_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  underlying_symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void OptionExtend::ArenaDtor(void* object) {
  OptionExtend* _this = reinterpret_cast< OptionExtend* >(object);
  (void)_this;
}
void OptionExtend::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionExtend::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  implied_volatility_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  contract_multiplier_.ClearToEmpty();
  contract_type_.ClearToEmpty();
  contract_size_.ClearToEmpty();
  direction_.ClearToEmpty();
  historical_volatility_.ClearToEmpty();
  underlying_symbol_.ClearToEmpty();
  open_interest_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionExtend::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.implied_volatility"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 open_interest = 2 [json_name = "openInterest"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          open_interest_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 3 [json_name = "expiryDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.expiry_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 4 [json_name = "strikePrice"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string contract_multiplier = 5 [json_name = "contractMultiplier"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_contract_multiplier();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_multiplier"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string contract_type = 6 [json_name = "contractType"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_contract_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_type"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string contract_size = 7 [json_name = "contractSize"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_contract_size();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.contract_size"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string direction = 8 [json_name = "direction"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_direction();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.direction"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string historical_volatility = 9 [json_name = "historicalVolatility"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_historical_volatility();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.historical_volatility"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionExtend.underlying_symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_open_interest(), target);
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_expiry_date(), target);
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_strike_price(), target);
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_multiplier().data(), static_cast<int>(this->_internal_contract_multiplier().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_multiplier");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_contract_multiplier(), target);
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_type().data(), static_cast<int>(this->_internal_contract_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_type");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_contract_type(), target);
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_size().data(), static_cast<int>(this->_internal_contract_size().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.contract_size");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_contract_size(), target);
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_direction().data(), static_cast<int>(this->_internal_direction().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.direction");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_direction(), target);
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_historical_volatility().data(), static_cast<int>(this->_internal_historical_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.historical_volatility");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_historical_volatility(), target);
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionExtend)
  return target;
}

size_t OptionExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_multiplier());
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_type());
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_size());
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_direction());
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_historical_volatility());
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_open_interest());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionExtend::GetClassData() const { return &_class_data_; }

void OptionExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionExtend *>(to)->MergeFrom(
      static_cast<const OptionExtend &>(from));
}


void OptionExtend::MergeFrom(const OptionExtend& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionExtend)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_contract_multiplier().empty()) {
    _internal_set_contract_multiplier(from._internal_contract_multiplier());
  }
  if (!from._internal_contract_type().empty()) {
    _internal_set_contract_type(from._internal_contract_type());
  }
  if (!from._internal_contract_size().empty()) {
    _internal_set_contract_size(from._internal_contract_size());
  }
  if (!from._internal_direction().empty()) {
    _internal_set_direction(from._internal_direction());
  }
  if (!from._internal_historical_volatility().empty()) {
    _internal_set_historical_volatility(from._internal_historical_volatility());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_open_interest() != 0) {
    _internal_set_open_interest(from._internal_open_interest());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionExtend::CopyFrom(const OptionExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionExtend::IsInitialized() const {
  return true;
}

void OptionExtend::InternalSwap(OptionExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &contract_multiplier_, lhs_arena,
      &other->contract_multiplier_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &contract_type_, lhs_arena,
      &other->contract_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &contract_size_, lhs_arena,
      &other->contract_size_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &direction_, lhs_arena,
      &other->direction_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &historical_volatility_, lhs_arena,
      &other->historical_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &underlying_symbol_, lhs_arena,
      &other->underlying_symbol_, rhs_arena
  );
  swap(open_interest_, other->open_interest_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionExtend::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[9]);
}

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

class WarrantQuoteResponse::_Internal {
 public:
};

WarrantQuoteResponse::WarrantQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
}
WarrantQuoteResponse::WarrantQuoteResponse(const WarrantQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
}

inline void WarrantQuoteResponse::SharedCtor() {
}

WarrantQuoteResponse::~WarrantQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantQuoteResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void WarrantQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void WarrantQuoteResponse::ArenaDtor(void* object) {
  WarrantQuoteResponse* _this = reinterpret_cast< WarrantQuoteResponse* >(object);
  (void)_this;
}
void WarrantQuoteResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WarrantQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuoteResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_secu_quote_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_secu_quote(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantQuoteResponse)
  return target;
}

size_t WarrantQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuoteResponse::GetClassData() const { return &_class_data_; }

void WarrantQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantQuoteResponse *>(to)->MergeFrom(
      static_cast<const WarrantQuoteResponse &>(from));
}


void WarrantQuoteResponse::MergeFrom(const WarrantQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuoteResponse::CopyFrom(const WarrantQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuoteResponse::IsInitialized() const {
  return true;
}

void WarrantQuoteResponse::InternalSwap(WarrantQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuoteResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[10]);
}

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

class WarrantQuote::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::WarrantExtend& warrant_extend(const WarrantQuote* msg);
};

const ::longbridgeapp::quote::v1::WarrantExtend&
WarrantQuote::_Internal::warrant_extend(const WarrantQuote* msg) {
  return *msg->warrant_extend_;
}
WarrantQuote::WarrantQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantQuote)
}
WarrantQuote::WarrantQuote(const WarrantQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_warrant_extend()) {
    warrant_extend_ = new ::longbridgeapp::quote::v1::WarrantExtend(*from.warrant_extend_);
  } else {
    warrant_extend_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantQuote)
}

inline void WarrantQuote::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&warrant_extend_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&warrant_extend_)) + sizeof(trade_status_));
}

WarrantQuote::~WarrantQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantQuote)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void WarrantQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  prev_close_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  open_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete warrant_extend_;
}

void WarrantQuote::ArenaDtor(void* object) {
  WarrantQuote* _this = reinterpret_cast< WarrantQuote* >(object);
  (void)_this;
}
void WarrantQuote::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WarrantQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && warrant_extend_ != nullptr) {
    delete warrant_extend_;
  }
  warrant_extend_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuote::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.prev_close"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.open"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantQuote.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_warrant_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        11, _Internal::warrant_extend(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantQuote)
  return target;
}

size_t WarrantQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridgeapp.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *warrant_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuote::GetClassData() const { return &_class_data_; }

void WarrantQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantQuote *>(to)->MergeFrom(
      static_cast<const WarrantQuote &>(from));
}


void WarrantQuote::MergeFrom(const WarrantQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_warrant_extend()) {
    _internal_mutable_warrant_extend()->::longbridgeapp::quote::v1::WarrantExtend::MergeFrom(from._internal_warrant_extend());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuote::CopyFrom(const WarrantQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuote::IsInitialized() const {
  return true;
}

void WarrantQuote::InternalSwap(WarrantQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantQuote, trade_status_)
      + sizeof(WarrantQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(WarrantQuote, warrant_extend_)>(
          reinterpret_cast<char*>(&warrant_extend_),
          reinterpret_cast<char*>(&other->warrant_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuote::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[11]);
}

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

class WarrantExtend::_Internal {
 public:
};

WarrantExtend::WarrantExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantExtend)
}
WarrantExtend::WarrantExtend(const WarrantExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  last_trade_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_trade_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_trade_date().empty()) {
    last_trade_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_trade_date(), 
      GetArenaForAllocation());
  }
  outstanding_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    outstanding_ratio_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_outstanding_ratio(), 
      GetArenaForAllocation());
  }
  conversion_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    conversion_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    conversion_ratio_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_conversion_ratio(), 
      GetArenaForAllocation());
  }
  category_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    category_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_category().empty()) {
    category_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_category(), 
      GetArenaForAllocation());
  }
  strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  upper_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    upper_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    upper_strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_upper_strike_price(), 
      GetArenaForAllocation());
  }
  lower_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    lower_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    lower_strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_lower_strike_price(), 
      GetArenaForAllocation());
  }
  call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    call_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_call_price(), 
      GetArenaForAllocation());
  }
  underlying_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    underlying_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    underlying_symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_underlying_symbol(), 
      GetArenaForAllocation());
  }
  outstanding_qty_ = from.outstanding_qty_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantExtend)
}

inline void WarrantExtend::SharedCtor() {
implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_trade_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_trade_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
conversion_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  conversion_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
category_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  category_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
upper_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  upper_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
lower_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  lower_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
underlying_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  underlying_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_qty_ = int64_t{0};
}

WarrantExtend::~WarrantExtend() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantExtend)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void WarrantExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  implied_volatility_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  expiry_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_trade_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  outstanding_ratio_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  conversion_ratio_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  category_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  upper_strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  lower_strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  call_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  underlying_symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void WarrantExtend::ArenaDtor(void* object) {
  WarrantExtend* _this = reinterpret_cast< WarrantExtend* >(object);
  (void)_this;
}
void WarrantExtend::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WarrantExtend::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  implied_volatility_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  last_trade_date_.ClearToEmpty();
  outstanding_ratio_.ClearToEmpty();
  conversion_ratio_.ClearToEmpty();
  category_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  upper_strike_price_.ClearToEmpty();
  lower_strike_price_.ClearToEmpty();
  call_price_.ClearToEmpty();
  underlying_symbol_.ClearToEmpty();
  outstanding_qty_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantExtend::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.implied_volatility"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.expiry_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_trade_date = 3 [json_name = "lastTradeDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_trade_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.last_trade_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.outstanding_ratio"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          outstanding_qty_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 6 [json_name = "conversionRatio"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.conversion_ratio"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string category = 7 [json_name = "category"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_category();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.category"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 8 [json_name = "strikePrice"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.upper_strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.lower_strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string call_price = 11 [json_name = "callPrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_call_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.call_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantExtend.underlying_symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_trade_date().data(), static_cast<int>(this->_internal_last_trade_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.last_trade_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_trade_date(), target);
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_outstanding_ratio(), target);
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_outstanding_qty(), target);
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_conversion_ratio(), target);
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_category().data(), static_cast<int>(this->_internal_category().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.category");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_category(), target);
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_lower_strike_price(), target);
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.call_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_call_price(), target);
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantExtend)
  return target;
}

size_t WarrantExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_trade_date());
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_category());
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_outstanding_qty());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantExtend::GetClassData() const { return &_class_data_; }

void WarrantExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantExtend *>(to)->MergeFrom(
      static_cast<const WarrantExtend &>(from));
}


void WarrantExtend::MergeFrom(const WarrantExtend& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantExtend)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_last_trade_date().empty()) {
    _internal_set_last_trade_date(from._internal_last_trade_date());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_category().empty()) {
    _internal_set_category(from._internal_category());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_call_price().empty()) {
    _internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_outstanding_qty() != 0) {
    _internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantExtend::CopyFrom(const WarrantExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantExtend::IsInitialized() const {
  return true;
}

void WarrantExtend::InternalSwap(WarrantExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_trade_date_, lhs_arena,
      &other->last_trade_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &outstanding_ratio_, lhs_arena,
      &other->outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &conversion_ratio_, lhs_arena,
      &other->conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &category_, lhs_arena,
      &other->category_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &upper_strike_price_, lhs_arena,
      &other->upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &lower_strike_price_, lhs_arena,
      &other->lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &call_price_, lhs_arena,
      &other->call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &underlying_symbol_, lhs_arena,
      &other->underlying_symbol_, rhs_arena
  );
  swap(outstanding_qty_, other->outstanding_qty_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantExtend::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[12]);
}

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

class SecurityDepthResponse::_Internal {
 public:
};

SecurityDepthResponse::SecurityDepthResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_(arena),
  bid_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityDepthResponse)
}
SecurityDepthResponse::SecurityDepthResponse(const SecurityDepthResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_(from.ask_),
      bid_(from.bid_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityDepthResponse)
}

inline void SecurityDepthResponse::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityDepthResponse::~SecurityDepthResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityDepthResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityDepthResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityDepthResponse::ArenaDtor(void* object) {
  SecurityDepthResponse* _this = reinterpret_cast< SecurityDepthResponse* >(object);
  (void)_this;
}
void SecurityDepthResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityDepthResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityDepthResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_.Clear();
  bid_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityDepthResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityDepthResponse.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityDepthResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityDepthResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_ask_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_ask(i), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_bid_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_bid(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityDepthResponse)
  return target;
}

size_t SecurityDepthResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Depth ask = 2 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 3 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityDepthResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityDepthResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityDepthResponse::GetClassData() const { return &_class_data_; }

void SecurityDepthResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityDepthResponse *>(to)->MergeFrom(
      static_cast<const SecurityDepthResponse &>(from));
}


void SecurityDepthResponse::MergeFrom(const SecurityDepthResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_.MergeFrom(from.ask_);
  bid_.MergeFrom(from.bid_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityDepthResponse::CopyFrom(const SecurityDepthResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityDepthResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityDepthResponse::IsInitialized() const {
  return true;
}

void SecurityDepthResponse::InternalSwap(SecurityDepthResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_.InternalSwap(&other->ask_);
  bid_.InternalSwap(&other->bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityDepthResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[13]);
}

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

class Depth::_Internal {
 public:
};

Depth::Depth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Depth)
}
Depth::Depth(const Depth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_price(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&position_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(position_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Depth)
}

inline void Depth::SharedCtor() {
price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&position_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(position_));
}

Depth::~Depth() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Depth)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Depth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Depth::ArenaDtor(void* object) {
  Depth* _this = reinterpret_cast< Depth* >(object);
  (void)_this;
}
void Depth::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Depth::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Depth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&position_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(position_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Depth::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string price = 2 [json_name = "price"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Depth.price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 order_num = 4 [json_name = "orderNum"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          order_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Depth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Depth.price");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_price(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_order_num(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Depth)
  return target;
}

size_t Depth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Depth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_order_num());
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Depth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Depth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Depth::GetClassData() const { return &_class_data_; }

void Depth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Depth *>(to)->MergeFrom(
      static_cast<const Depth &>(from));
}


void Depth::MergeFrom(const Depth& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Depth)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_order_num() != 0) {
    _internal_set_order_num(from._internal_order_num());
  }
  if (from._internal_position() != 0) {
    _internal_set_position(from._internal_position());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Depth::CopyFrom(const Depth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Depth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Depth::IsInitialized() const {
  return true;
}

void Depth::InternalSwap(Depth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Depth, position_)
      + sizeof(Depth::position_)
      - PROTOBUF_FIELD_OFFSET(Depth, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Depth::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[14]);
}

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

class SecurityBrokersResponse::_Internal {
 public:
};

SecurityBrokersResponse::SecurityBrokersResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_brokers_(arena),
  bid_brokers_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
}
SecurityBrokersResponse::SecurityBrokersResponse(const SecurityBrokersResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_brokers_(from.ask_brokers_),
      bid_brokers_(from.bid_brokers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
}

inline void SecurityBrokersResponse::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityBrokersResponse::~SecurityBrokersResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityBrokersResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityBrokersResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityBrokersResponse::ArenaDtor(void* object) {
  SecurityBrokersResponse* _this = reinterpret_cast< SecurityBrokersResponse* >(object);
  (void)_this;
}
void SecurityBrokersResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityBrokersResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityBrokersResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_brokers_.Clear();
  bid_brokers_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityBrokersResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityBrokersResponse.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityBrokersResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityBrokersResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_ask_brokers_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_ask_brokers(i), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_bid_brokers_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_bid_brokers(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityBrokersResponse)
  return target;
}

size_t SecurityBrokersResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityBrokersResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityBrokersResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityBrokersResponse::GetClassData() const { return &_class_data_; }

void SecurityBrokersResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityBrokersResponse *>(to)->MergeFrom(
      static_cast<const SecurityBrokersResponse &>(from));
}


void SecurityBrokersResponse::MergeFrom(const SecurityBrokersResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_brokers_.MergeFrom(from.ask_brokers_);
  bid_brokers_.MergeFrom(from.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityBrokersResponse::CopyFrom(const SecurityBrokersResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityBrokersResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityBrokersResponse::IsInitialized() const {
  return true;
}

void SecurityBrokersResponse::InternalSwap(SecurityBrokersResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_brokers_.InternalSwap(&other->ask_brokers_);
  bid_brokers_.InternalSwap(&other->bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityBrokersResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[15]);
}

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

class Brokers::_Internal {
 public:
};

Brokers::Brokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  broker_ids_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Brokers)
}
Brokers::Brokers(const Brokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      broker_ids_(from.broker_ids_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  position_ = from.position_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Brokers)
}

inline void Brokers::SharedCtor() {
position_ = 0;
}

Brokers::~Brokers() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Brokers)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Brokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void Brokers::ArenaDtor(void* object) {
  Brokers* _this = reinterpret_cast< Brokers* >(object);
  (void)_this;
}
void Brokers::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Brokers::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Brokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  broker_ids_.Clear();
  position_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Brokers::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Brokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    int byte_size = _broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          2, _internal_broker_ids(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Brokers)
  return target;
}

size_t Brokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Brokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Brokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Brokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Brokers::GetClassData() const { return &_class_data_; }

void Brokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Brokers *>(to)->MergeFrom(
      static_cast<const Brokers &>(from));
}


void Brokers::MergeFrom(const Brokers& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Brokers)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  broker_ids_.MergeFrom(from.broker_ids_);
  if (from._internal_position() != 0) {
    _internal_set_position(from._internal_position());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Brokers::CopyFrom(const Brokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Brokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Brokers::IsInitialized() const {
  return true;
}

void Brokers::InternalSwap(Brokers* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  broker_ids_.InternalSwap(&other->broker_ids_);
  swap(position_, other->position_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Brokers::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[16]);
}

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

class ParticipantBrokerIdsResponse::_Internal {
 public:
};

ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  participant_broker_numbers_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
}
ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(const ParticipantBrokerIdsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      participant_broker_numbers_(from.participant_broker_numbers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
}

inline void ParticipantBrokerIdsResponse::SharedCtor() {
}

ParticipantBrokerIdsResponse::~ParticipantBrokerIdsResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void ParticipantBrokerIdsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ParticipantBrokerIdsResponse::ArenaDtor(void* object) {
  ParticipantBrokerIdsResponse* _this = reinterpret_cast< ParticipantBrokerIdsResponse* >(object);
  (void)_this;
}
void ParticipantBrokerIdsResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ParticipantBrokerIdsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ParticipantBrokerIdsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  participant_broker_numbers_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantBrokerIdsResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_participant_broker_numbers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantBrokerIdsResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_participant_broker_numbers_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_participant_broker_numbers(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  return target;
}

size_t ParticipantBrokerIdsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  total_size += 1UL * this->_internal_participant_broker_numbers_size();
  for (const auto& msg : this->participant_broker_numbers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantBrokerIdsResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    ParticipantBrokerIdsResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantBrokerIdsResponse::GetClassData() const { return &_class_data_; }

void ParticipantBrokerIdsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<ParticipantBrokerIdsResponse *>(to)->MergeFrom(
      static_cast<const ParticipantBrokerIdsResponse &>(from));
}


void ParticipantBrokerIdsResponse::MergeFrom(const ParticipantBrokerIdsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  participant_broker_numbers_.MergeFrom(from.participant_broker_numbers_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantBrokerIdsResponse::CopyFrom(const ParticipantBrokerIdsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.ParticipantBrokerIdsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantBrokerIdsResponse::IsInitialized() const {
  return true;
}

void ParticipantBrokerIdsResponse::InternalSwap(ParticipantBrokerIdsResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  participant_broker_numbers_.InternalSwap(&other->participant_broker_numbers_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantBrokerIdsResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[17]);
}

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

class ParticipantInfo::_Internal {
 public:
};

ParticipantInfo::ParticipantInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  broker_ids_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.ParticipantInfo)
}
ParticipantInfo::ParticipantInfo(const ParticipantInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      broker_ids_(from.broker_ids_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  participant_name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_cn().empty()) {
    participant_name_cn_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_participant_name_cn(), 
      GetArenaForAllocation());
  }
  participant_name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_en().empty()) {
    participant_name_en_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_participant_name_en(), 
      GetArenaForAllocation());
  }
  participant_name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_hk().empty()) {
    participant_name_hk_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_participant_name_hk(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.ParticipantInfo)
}

inline void ParticipantInfo::SharedCtor() {
participant_name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
participant_name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
participant_name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ParticipantInfo::~ParticipantInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.ParticipantInfo)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void ParticipantInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  participant_name_cn_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  participant_name_en_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  participant_name_hk_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void ParticipantInfo::ArenaDtor(void* object) {
  ParticipantInfo* _this = reinterpret_cast< ParticipantInfo* >(object);
  (void)_this;
}
void ParticipantInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ParticipantInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ParticipantInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  broker_ids_.Clear();
  participant_name_cn_.ClearToEmpty();
  participant_name_en_.ClearToEmpty();
  participant_name_hk_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string participant_name_cn = 2 [json_name = "participantNameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_participant_name_cn();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_cn"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string participant_name_en = 3 [json_name = "participantNameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_participant_name_en();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_en"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string participant_name_hk = 4 [json_name = "participantNameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_participant_name_hk();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.ParticipantInfo.participant_name_hk"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    int byte_size = _broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          1, _internal_broker_ids(), byte_size, target);
    }
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_cn().data(), static_cast<int>(this->_internal_participant_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_participant_name_cn(), target);
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_en().data(), static_cast<int>(this->_internal_participant_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_participant_name_en(), target);
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_hk().data(), static_cast<int>(this->_internal_participant_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.ParticipantInfo.participant_name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_participant_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.ParticipantInfo)
  return target;
}

size_t ParticipantInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.ParticipantInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_cn());
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_en());
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_hk());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    ParticipantInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantInfo::GetClassData() const { return &_class_data_; }

void ParticipantInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<ParticipantInfo *>(to)->MergeFrom(
      static_cast<const ParticipantInfo &>(from));
}


void ParticipantInfo::MergeFrom(const ParticipantInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.ParticipantInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  broker_ids_.MergeFrom(from.broker_ids_);
  if (!from._internal_participant_name_cn().empty()) {
    _internal_set_participant_name_cn(from._internal_participant_name_cn());
  }
  if (!from._internal_participant_name_en().empty()) {
    _internal_set_participant_name_en(from._internal_participant_name_en());
  }
  if (!from._internal_participant_name_hk().empty()) {
    _internal_set_participant_name_hk(from._internal_participant_name_hk());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantInfo::CopyFrom(const ParticipantInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.ParticipantInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantInfo::IsInitialized() const {
  return true;
}

void ParticipantInfo::InternalSwap(ParticipantInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  broker_ids_.InternalSwap(&other->broker_ids_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &participant_name_cn_, lhs_arena,
      &other->participant_name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &participant_name_en_, lhs_arena,
      &other->participant_name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &participant_name_hk_, lhs_arena,
      &other->participant_name_hk_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantInfo::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[18]);
}

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

class SecurityTradeRequest::_Internal {
 public:
};

SecurityTradeRequest::SecurityTradeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityTradeRequest)
}
SecurityTradeRequest::SecurityTradeRequest(const SecurityTradeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  count_ = from.count_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityTradeRequest)
}

inline void SecurityTradeRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
count_ = 0;
}

SecurityTradeRequest::~SecurityTradeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityTradeRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityTradeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityTradeRequest::ArenaDtor(void* object) {
  SecurityTradeRequest* _this = reinterpret_cast< SecurityTradeRequest* >(object);
  (void)_this;
}
void SecurityTradeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityTradeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityTradeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityTradeRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 count = 2 [json_name = "count"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityTradeRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityTradeRequest)
  return target;
}

size_t SecurityTradeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityTradeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeRequest::GetClassData() const { return &_class_data_; }

void SecurityTradeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityTradeRequest *>(to)->MergeFrom(
      static_cast<const SecurityTradeRequest &>(from));
}


void SecurityTradeRequest::MergeFrom(const SecurityTradeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_count() != 0) {
    _internal_set_count(from._internal_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeRequest::CopyFrom(const SecurityTradeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityTradeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeRequest::IsInitialized() const {
  return true;
}

void SecurityTradeRequest::InternalSwap(SecurityTradeRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(count_, other->count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[19]);
}

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

class SecurityTradeResponse::_Internal {
 public:
};

SecurityTradeResponse::SecurityTradeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trades_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityTradeResponse)
}
SecurityTradeResponse::SecurityTradeResponse(const SecurityTradeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trades_(from.trades_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityTradeResponse)
}

inline void SecurityTradeResponse::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityTradeResponse::~SecurityTradeResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityTradeResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityTradeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityTradeResponse::ArenaDtor(void* object) {
  SecurityTradeResponse* _this = reinterpret_cast< SecurityTradeResponse* >(object);
  (void)_this;
}
void SecurityTradeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityTradeResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityTradeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trades_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityTradeResponse.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trades(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityTradeResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_trades_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_trades(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityTradeResponse)
  return target;
}

size_t SecurityTradeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Trade trades = 2 [json_name = "trades"];
  total_size += 1UL * this->_internal_trades_size();
  for (const auto& msg : this->trades_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityTradeResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeResponse::GetClassData() const { return &_class_data_; }

void SecurityTradeResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityTradeResponse *>(to)->MergeFrom(
      static_cast<const SecurityTradeResponse &>(from));
}


void SecurityTradeResponse::MergeFrom(const SecurityTradeResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trades_.MergeFrom(from.trades_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeResponse::CopyFrom(const SecurityTradeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityTradeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeResponse::IsInitialized() const {
  return true;
}

void SecurityTradeResponse::InternalSwap(SecurityTradeResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trades_.InternalSwap(&other->trades_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[20]);
}

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

class Trade::_Internal {
 public:
};

Trade::Trade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Trade)
}
Trade::Trade(const Trade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_price(), 
      GetArenaForAllocation());
  }
  trade_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    trade_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_trade_type().empty()) {
    trade_type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_trade_type(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Trade)
}

inline void Trade::SharedCtor() {
price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
trade_type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  trade_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
}

Trade::~Trade() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Trade)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Trade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  trade_type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Trade::ArenaDtor(void* object) {
  Trade* _this = reinterpret_cast< Trade* >(object);
  (void)_this;
}
void Trade::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Trade::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Trade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  trade_type_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Trade::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Trade.price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 2 [json_name = "volume"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 3 [json_name = "timestamp"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string trade_type = 4 [json_name = "tradeType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_trade_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Trade.trade_type"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 direction = 5 [json_name = "direction"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Trade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Trade.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_volume(), target);
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_timestamp(), target);
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_trade_type().data(), static_cast<int>(this->_internal_trade_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Trade.trade_type");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_trade_type(), target);
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_direction(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Trade)
  return target;
}

size_t Trade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Trade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_trade_type());
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_direction());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Trade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Trade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Trade::GetClassData() const { return &_class_data_; }

void Trade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Trade *>(to)->MergeFrom(
      static_cast<const Trade &>(from));
}


void Trade::MergeFrom(const Trade& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Trade)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_trade_type().empty()) {
    _internal_set_trade_type(from._internal_trade_type());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_direction() != 0) {
    _internal_set_direction(from._internal_direction());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Trade::CopyFrom(const Trade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Trade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Trade::IsInitialized() const {
  return true;
}

void Trade::InternalSwap(Trade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &trade_type_, lhs_arena,
      &other->trade_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Trade, trade_session_)
      + sizeof(Trade::trade_session_)
      - PROTOBUF_FIELD_OFFSET(Trade, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Trade::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[21]);
}

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

class SecurityIntradayRequest::_Internal {
 public:
};

SecurityIntradayRequest::SecurityIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
}
SecurityIntradayRequest::SecurityIntradayRequest(const SecurityIntradayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
}

inline void SecurityIntradayRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityIntradayRequest::~SecurityIntradayRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityIntradayRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityIntradayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityIntradayRequest::ArenaDtor(void* object) {
  SecurityIntradayRequest* _this = reinterpret_cast< SecurityIntradayRequest* >(object);
  (void)_this;
}
void SecurityIntradayRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityIntradayRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityIntradayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityIntradayRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityIntradayRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityIntradayRequest)
  return target;
}

size_t SecurityIntradayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityIntradayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayRequest::GetClassData() const { return &_class_data_; }

void SecurityIntradayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityIntradayRequest *>(to)->MergeFrom(
      static_cast<const SecurityIntradayRequest &>(from));
}


void SecurityIntradayRequest::MergeFrom(const SecurityIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayRequest::CopyFrom(const SecurityIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityIntradayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayRequest::IsInitialized() const {
  return true;
}

void SecurityIntradayRequest::InternalSwap(SecurityIntradayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[22]);
}

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

class SecurityIntradayResponse::_Internal {
 public:
};

SecurityIntradayResponse::SecurityIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  lines_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
}
SecurityIntradayResponse::SecurityIntradayResponse(const SecurityIntradayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      lines_(from.lines_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
}

inline void SecurityIntradayResponse::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityIntradayResponse::~SecurityIntradayResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityIntradayResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityIntradayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityIntradayResponse::ArenaDtor(void* object) {
  SecurityIntradayResponse* _this = reinterpret_cast< SecurityIntradayResponse* >(object);
  (void)_this;
}
void SecurityIntradayResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityIntradayResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityIntradayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  lines_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityIntradayResponse.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_lines(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityIntradayResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_lines_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_lines(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityIntradayResponse)
  return target;
}

size_t SecurityIntradayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Line lines = 2 [json_name = "lines"];
  total_size += 1UL * this->_internal_lines_size();
  for (const auto& msg : this->lines_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityIntradayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayResponse::GetClassData() const { return &_class_data_; }

void SecurityIntradayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityIntradayResponse *>(to)->MergeFrom(
      static_cast<const SecurityIntradayResponse &>(from));
}


void SecurityIntradayResponse::MergeFrom(const SecurityIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  lines_.MergeFrom(from.lines_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayResponse::CopyFrom(const SecurityIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityIntradayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayResponse::IsInitialized() const {
  return true;
}

void SecurityIntradayResponse::InternalSwap(SecurityIntradayResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  lines_.InternalSwap(&other->lines_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[23]);
}

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

class Line::_Internal {
 public:
};

Line::Line(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Line)
}
Line::Line(const Line& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_price(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  avg_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    avg_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_avg_price().empty()) {
    avg_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_avg_price(), 
      GetArenaForAllocation());
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Line)
}

inline void Line::SharedCtor() {
price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
avg_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  avg_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&timestamp_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
}

Line::~Line() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Line)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Line::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  avg_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Line::ArenaDtor(void* object) {
  Line* _this = reinterpret_cast< Line* >(object);
  (void)_this;
}
void Line::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Line::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Line::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  turnover_.ClearToEmpty();
  avg_price_.ClearToEmpty();
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&volume_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Line::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string avg_price = 5 [json_name = "avgPrice"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_avg_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Line.avg_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Line::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_avg_price().data(), static_cast<int>(this->_internal_avg_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Line.avg_price");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_avg_price(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Line)
  return target;
}

size_t Line::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Line)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_avg_price());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Line::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Line::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Line::GetClassData() const { return &_class_data_; }

void Line::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Line *>(to)->MergeFrom(
      static_cast<const Line &>(from));
}


void Line::MergeFrom(const Line& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Line)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_avg_price().empty()) {
    _internal_set_avg_price(from._internal_avg_price());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Line::CopyFrom(const Line& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Line)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Line::IsInitialized() const {
  return true;
}

void Line::InternalSwap(Line* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &avg_price_, lhs_arena,
      &other->avg_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Line, volume_)
      + sizeof(Line::volume_)
      - PROTOBUF_FIELD_OFFSET(Line, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Line::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[24]);
}

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

class SecurityCandlestickRequest::_Internal {
 public:
};

SecurityCandlestickRequest::SecurityCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
}
SecurityCandlestickRequest::SecurityCandlestickRequest(const SecurityCandlestickRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  ::memcpy(&period_, &from.period_,
    static_cast<size_t>(reinterpret_cast<char*>(&adjust_type_) -
    reinterpret_cast<char*>(&period_)) + sizeof(adjust_type_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
}

inline void SecurityCandlestickRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&period_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&adjust_type_) -
    reinterpret_cast<char*>(&period_)) + sizeof(adjust_type_));
}

SecurityCandlestickRequest::~SecurityCandlestickRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityCandlestickRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityCandlestickRequest::ArenaDtor(void* object) {
  SecurityCandlestickRequest* _this = reinterpret_cast< SecurityCandlestickRequest* >(object);
  (void)_this;
}
void SecurityCandlestickRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityCandlestickRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCandlestickRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  ::memset(&period_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&adjust_type_) -
      reinterpret_cast<char*>(&period_)) + sizeof(adjust_type_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCandlestickRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_period(static_cast<::longbridgeapp::quote::v1::Period>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 3 [json_name = "count"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_adjust_type(static_cast<::longbridgeapp::quote::v1::AdjustType>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCandlestickRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_period(), target);
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_count(), target);
  }

  // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      4, this->_internal_adjust_type(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  return target;
}

size_t SecurityCandlestickRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridgeapp.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_period());
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  // .longbridgeapp.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_adjust_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCandlestickRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickRequest::GetClassData() const { return &_class_data_; }

void SecurityCandlestickRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCandlestickRequest *>(to)->MergeFrom(
      static_cast<const SecurityCandlestickRequest &>(from));
}


void SecurityCandlestickRequest::MergeFrom(const SecurityCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_period() != 0) {
    _internal_set_period(from._internal_period());
  }
  if (from._internal_count() != 0) {
    _internal_set_count(from._internal_count());
  }
  if (from._internal_adjust_type() != 0) {
    _internal_set_adjust_type(from._internal_adjust_type());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickRequest::CopyFrom(const SecurityCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCandlestickRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickRequest::IsInitialized() const {
  return true;
}

void SecurityCandlestickRequest::InternalSwap(SecurityCandlestickRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, adjust_type_)
      + sizeof(SecurityCandlestickRequest::adjust_type_)
      - PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, period_)>(
          reinterpret_cast<char*>(&period_),
          reinterpret_cast<char*>(&other->period_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[25]);
}

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

class SecurityCandlestickResponse::_Internal {
 public:
};

SecurityCandlestickResponse::SecurityCandlestickResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  candlesticks_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
}
SecurityCandlestickResponse::SecurityCandlestickResponse(const SecurityCandlestickResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      candlesticks_(from.candlesticks_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
}

inline void SecurityCandlestickResponse::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityCandlestickResponse::~SecurityCandlestickResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SecurityCandlestickResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SecurityCandlestickResponse::ArenaDtor(void* object) {
  SecurityCandlestickResponse* _this = reinterpret_cast< SecurityCandlestickResponse* >(object);
  (void)_this;
}
void SecurityCandlestickResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SecurityCandlestickResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCandlestickResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  candlesticks_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SecurityCandlestickResponse.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_candlesticks(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SecurityCandlestickResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_candlesticks_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_candlesticks(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  return target;
}

size_t SecurityCandlestickResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  total_size += 1UL * this->_internal_candlesticks_size();
  for (const auto& msg : this->candlesticks_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCandlestickResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickResponse::GetClassData() const { return &_class_data_; }

void SecurityCandlestickResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCandlestickResponse *>(to)->MergeFrom(
      static_cast<const SecurityCandlestickResponse &>(from));
}


void SecurityCandlestickResponse::MergeFrom(const SecurityCandlestickResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  candlesticks_.MergeFrom(from.candlesticks_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickResponse::CopyFrom(const SecurityCandlestickResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SecurityCandlestickResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickResponse::IsInitialized() const {
  return true;
}

void SecurityCandlestickResponse::InternalSwap(SecurityCandlestickResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  candlesticks_.InternalSwap(&other->candlesticks_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[26]);
}

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

class Candlestick::_Internal {
 public:
};

Candlestick::Candlestick(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.Candlestick)
}
Candlestick::Candlestick(const Candlestick& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_close().empty()) {
    close_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_close(), 
      GetArenaForAllocation());
  }
  open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_open(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&timestamp_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(timestamp_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.Candlestick)
}

inline void Candlestick::SharedCtor() {
close_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  close_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&timestamp_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(timestamp_));
}

Candlestick::~Candlestick() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.Candlestick)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void Candlestick::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  close_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  open_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void Candlestick::ArenaDtor(void* object) {
  Candlestick* _this = reinterpret_cast< Candlestick* >(object);
  (void)_this;
}
void Candlestick::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Candlestick::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Candlestick::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  close_.ClearToEmpty();
  open_.ClearToEmpty();
  low_.ClearToEmpty();
  high_.ClearToEmpty();
  turnover_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&timestamp_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(timestamp_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Candlestick::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string close = 1 [json_name = "close"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_close();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.close"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string open = 2 [json_name = "open"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_open();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.open"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 3 [json_name = "low"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 4 [json_name = "high"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 5 [json_name = "volume"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 6 [json_name = "turnover"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.Candlestick.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Candlestick::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_close().data(), static_cast<int>(this->_internal_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.close");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_close(), target);
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.open");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_open(), target);
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.low");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_low(), target);
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.high");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_high(), target);
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_volume(), target);
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.Candlestick.turnover");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_turnover(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.Candlestick)
  return target;
}

size_t Candlestick::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.Candlestick)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_close());
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Candlestick::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Candlestick::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Candlestick::GetClassData() const { return &_class_data_; }

void Candlestick::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Candlestick *>(to)->MergeFrom(
      static_cast<const Candlestick &>(from));
}


void Candlestick::MergeFrom(const Candlestick& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.Candlestick)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_close().empty()) {
    _internal_set_close(from._internal_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Candlestick::CopyFrom(const Candlestick& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.Candlestick)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Candlestick::IsInitialized() const {
  return true;
}

void Candlestick::InternalSwap(Candlestick* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &close_, lhs_arena,
      &other->close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Candlestick, timestamp_)
      + sizeof(Candlestick::timestamp_)
      - PROTOBUF_FIELD_OFFSET(Candlestick, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Candlestick::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[27]);
}

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

class OptionChainDateListResponse::_Internal {
 public:
};

OptionChainDateListResponse::OptionChainDateListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  expiry_date_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
}
OptionChainDateListResponse::OptionChainDateListResponse(const OptionChainDateListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      expiry_date_(from.expiry_date_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
}

inline void OptionChainDateListResponse::SharedCtor() {
}

OptionChainDateListResponse::~OptionChainDateListResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateListResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionChainDateListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionChainDateListResponse::ArenaDtor(void* object) {
  OptionChainDateListResponse* _this = reinterpret_cast< OptionChainDateListResponse* >(object);
  (void)_this;
}
void OptionChainDateListResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionChainDateListResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  expiry_date_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateListResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string expiry_date = 1 [json_name = "expiryDate"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_expiry_date();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateListResponse.expiry_date"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  for (int i = 0, n = this->_internal_expiry_date_size(); i < n; i++) {
    const auto& s = this->_internal_expiry_date(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateListResponse.expiry_date");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateListResponse)
  return target;
}

size_t OptionChainDateListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(expiry_date_.size());
  for (int i = 0, n = expiry_date_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      expiry_date_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateListResponse::GetClassData() const { return &_class_data_; }

void OptionChainDateListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateListResponse *>(to)->MergeFrom(
      static_cast<const OptionChainDateListResponse &>(from));
}


void OptionChainDateListResponse::MergeFrom(const OptionChainDateListResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  expiry_date_.MergeFrom(from.expiry_date_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateListResponse::CopyFrom(const OptionChainDateListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateListResponse::IsInitialized() const {
  return true;
}

void OptionChainDateListResponse::InternalSwap(OptionChainDateListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  expiry_date_.InternalSwap(&other->expiry_date_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateListResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[28]);
}

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

class OptionChainDateStrikeInfoRequest::_Internal {
 public:
};

OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
}
OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(const OptionChainDateStrikeInfoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
}

inline void OptionChainDateStrikeInfoRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OptionChainDateStrikeInfoRequest::~OptionChainDateStrikeInfoRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionChainDateStrikeInfoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  expiry_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void OptionChainDateStrikeInfoRequest::ArenaDtor(void* object) {
  OptionChainDateStrikeInfoRequest* _this = reinterpret_cast< OptionChainDateStrikeInfoRequest* >(object);
  (void)_this;
}
void OptionChainDateStrikeInfoRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionChainDateStrikeInfoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateStrikeInfoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  return target;
}

size_t OptionChainDateStrikeInfoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateStrikeInfoRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoRequest::GetClassData() const { return &_class_data_; }

void OptionChainDateStrikeInfoRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateStrikeInfoRequest *>(to)->MergeFrom(
      static_cast<const OptionChainDateStrikeInfoRequest &>(from));
}


void OptionChainDateStrikeInfoRequest::MergeFrom(const OptionChainDateStrikeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoRequest::CopyFrom(const OptionChainDateStrikeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoRequest::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoRequest::InternalSwap(OptionChainDateStrikeInfoRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[29]);
}

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

class OptionChainDateStrikeInfoResponse::_Internal {
 public:
};

OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  strike_price_info_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
}
OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(const OptionChainDateStrikeInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      strike_price_info_(from.strike_price_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
}

inline void OptionChainDateStrikeInfoResponse::SharedCtor() {
}

OptionChainDateStrikeInfoResponse::~OptionChainDateStrikeInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void OptionChainDateStrikeInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionChainDateStrikeInfoResponse::ArenaDtor(void* object) {
  OptionChainDateStrikeInfoResponse* _this = reinterpret_cast< OptionChainDateStrikeInfoResponse* >(object);
  (void)_this;
}
void OptionChainDateStrikeInfoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void OptionChainDateStrikeInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateStrikeInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  strike_price_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_strike_price_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_strike_price_info_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_strike_price_info(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  return target;
}

size_t OptionChainDateStrikeInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  total_size += 1UL * this->_internal_strike_price_info_size();
  for (const auto& msg : this->strike_price_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateStrikeInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoResponse::GetClassData() const { return &_class_data_; }

void OptionChainDateStrikeInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateStrikeInfoResponse *>(to)->MergeFrom(
      static_cast<const OptionChainDateStrikeInfoResponse &>(from));
}


void OptionChainDateStrikeInfoResponse::MergeFrom(const OptionChainDateStrikeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  strike_price_info_.MergeFrom(from.strike_price_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoResponse::CopyFrom(const OptionChainDateStrikeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoResponse::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoResponse::InternalSwap(OptionChainDateStrikeInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  strike_price_info_.InternalSwap(&other->strike_price_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[30]);
}

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

class StrikePriceInfo::_Internal {
 public:
};

StrikePriceInfo::StrikePriceInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.StrikePriceInfo)
}
StrikePriceInfo::StrikePriceInfo(const StrikePriceInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_price(), 
      GetArenaForAllocation());
  }
  call_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_symbol().empty()) {
    call_symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_call_symbol(), 
      GetArenaForAllocation());
  }
  put_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    put_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_put_symbol().empty()) {
    put_symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_put_symbol(), 
      GetArenaForAllocation());
  }
  standard_ = from.standard_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.StrikePriceInfo)
}

inline void StrikePriceInfo::SharedCtor() {
price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
put_symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  put_symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
standard_ = false;
}

StrikePriceInfo::~StrikePriceInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.StrikePriceInfo)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void StrikePriceInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  call_symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  put_symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void StrikePriceInfo::ArenaDtor(void* object) {
  StrikePriceInfo* _this = reinterpret_cast< StrikePriceInfo* >(object);
  (void)_this;
}
void StrikePriceInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void StrikePriceInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void StrikePriceInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  call_symbol_.ClearToEmpty();
  put_symbol_.ClearToEmpty();
  standard_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StrikePriceInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string call_symbol = 2 [json_name = "callSymbol"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_call_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.call_symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string put_symbol = 3 [json_name = "putSymbol"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_put_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.StrikePriceInfo.put_symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool standard = 4 [json_name = "standard"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          standard_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StrikePriceInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_symbol().data(), static_cast<int>(this->_internal_call_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.call_symbol");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_call_symbol(), target);
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_put_symbol().data(), static_cast<int>(this->_internal_put_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.StrikePriceInfo.put_symbol");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_put_symbol(), target);
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_standard(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.StrikePriceInfo)
  return target;
}

size_t StrikePriceInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.StrikePriceInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_symbol());
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_put_symbol());
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StrikePriceInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    StrikePriceInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StrikePriceInfo::GetClassData() const { return &_class_data_; }

void StrikePriceInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<StrikePriceInfo *>(to)->MergeFrom(
      static_cast<const StrikePriceInfo &>(from));
}


void StrikePriceInfo::MergeFrom(const StrikePriceInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.StrikePriceInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_call_symbol().empty()) {
    _internal_set_call_symbol(from._internal_call_symbol());
  }
  if (!from._internal_put_symbol().empty()) {
    _internal_set_put_symbol(from._internal_put_symbol());
  }
  if (from._internal_standard() != 0) {
    _internal_set_standard(from._internal_standard());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StrikePriceInfo::CopyFrom(const StrikePriceInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.StrikePriceInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StrikePriceInfo::IsInitialized() const {
  return true;
}

void StrikePriceInfo::InternalSwap(StrikePriceInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &call_symbol_, lhs_arena,
      &other->call_symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &put_symbol_, lhs_arena,
      &other->put_symbol_, rhs_arena
  );
  swap(standard_, other->standard_);
}

::PROTOBUF_NAMESPACE_ID::Metadata StrikePriceInfo::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[31]);
}

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

class IssuerInfoResponse::_Internal {
 public:
};

IssuerInfoResponse::IssuerInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  issuer_info_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.IssuerInfoResponse)
}
IssuerInfoResponse::IssuerInfoResponse(const IssuerInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      issuer_info_(from.issuer_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.IssuerInfoResponse)
}

inline void IssuerInfoResponse::SharedCtor() {
}

IssuerInfoResponse::~IssuerInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.IssuerInfoResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void IssuerInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void IssuerInfoResponse::ArenaDtor(void* object) {
  IssuerInfoResponse* _this = reinterpret_cast< IssuerInfoResponse* >(object);
  (void)_this;
}
void IssuerInfoResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void IssuerInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void IssuerInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  issuer_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfoResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_issuer_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_issuer_info_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_issuer_info(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.IssuerInfoResponse)
  return target;
}

size_t IssuerInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  total_size += 1UL * this->_internal_issuer_info_size();
  for (const auto& msg : this->issuer_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    IssuerInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfoResponse::GetClassData() const { return &_class_data_; }

void IssuerInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<IssuerInfoResponse *>(to)->MergeFrom(
      static_cast<const IssuerInfoResponse &>(from));
}


void IssuerInfoResponse::MergeFrom(const IssuerInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  issuer_info_.MergeFrom(from.issuer_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfoResponse::CopyFrom(const IssuerInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.IssuerInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfoResponse::IsInitialized() const {
  return true;
}

void IssuerInfoResponse::InternalSwap(IssuerInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  issuer_info_.InternalSwap(&other->issuer_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfoResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[32]);
}

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

class IssuerInfo::_Internal {
 public:
};

IssuerInfo::IssuerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.IssuerInfo)
}
IssuerInfo::IssuerInfo(const IssuerInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    name_cn_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_cn(), 
      GetArenaForAllocation());
  }
  name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    name_en_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_en(), 
      GetArenaForAllocation());
  }
  name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    name_hk_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name_hk(), 
      GetArenaForAllocation());
  }
  id_ = from.id_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.IssuerInfo)
}

inline void IssuerInfo::SharedCtor() {
name_cn_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_cn_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_en_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_en_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_hk_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_hk_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
id_ = 0;
}

IssuerInfo::~IssuerInfo() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.IssuerInfo)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void IssuerInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_cn_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_en_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_hk_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void IssuerInfo::ArenaDtor(void* object) {
  IssuerInfo* _this = reinterpret_cast< IssuerInfo* >(object);
  (void)_this;
}
void IssuerInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void IssuerInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void IssuerInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_cn_.ClearToEmpty();
  name_en_.ClearToEmpty();
  name_hk_.ClearToEmpty();
  id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1 [json_name = "id"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_cn"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_en"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.IssuerInfo.name_hk"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_id(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.IssuerInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.IssuerInfo)
  return target;
}

size_t IssuerInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.IssuerInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_id());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    IssuerInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfo::GetClassData() const { return &_class_data_; }

void IssuerInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<IssuerInfo *>(to)->MergeFrom(
      static_cast<const IssuerInfo &>(from));
}


void IssuerInfo::MergeFrom(const IssuerInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.IssuerInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name_cn().empty()) {
    _internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _internal_set_name_hk(from._internal_name_hk());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfo::CopyFrom(const IssuerInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.IssuerInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfo::IsInitialized() const {
  return true;
}

void IssuerInfo::InternalSwap(IssuerInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_cn_, lhs_arena,
      &other->name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_en_, lhs_arena,
      &other->name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_hk_, lhs_arena,
      &other->name_hk_, rhs_arena
  );
  swap(id_, other->id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfo::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[33]);
}

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

class WarrantFilterListRequest::_Internal {
 public:
  static const ::longbridgeapp::quote::v1::FilterConfig& filter_config(const WarrantFilterListRequest* msg);
};

const ::longbridgeapp::quote::v1::FilterConfig&
WarrantFilterListRequest::_Internal::filter_config(const WarrantFilterListRequest* msg) {
  return *msg->filter_config_;
}
WarrantFilterListRequest::WarrantFilterListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
}
WarrantFilterListRequest::WarrantFilterListRequest(const WarrantFilterListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_filter_config()) {
    filter_config_ = new ::longbridgeapp::quote::v1::FilterConfig(*from.filter_config_);
  } else {
    filter_config_ = nullptr;
  }
  language_ = from.language_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
}

inline void WarrantFilterListRequest::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&filter_config_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&language_) -
    reinterpret_cast<char*>(&filter_config_)) + sizeof(language_));
}

WarrantFilterListRequest::~WarrantFilterListRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantFilterListRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void WarrantFilterListRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete filter_config_;
}

void WarrantFilterListRequest::ArenaDtor(void* object) {
  WarrantFilterListRequest* _this = reinterpret_cast< WarrantFilterListRequest* >(object);
  (void)_this;
}
void WarrantFilterListRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WarrantFilterListRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantFilterListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && filter_config_ != nullptr) {
    delete filter_config_;
  }
  filter_config_ = nullptr;
  language_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.WarrantFilterListRequest.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_filter_config(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 language = 3 [json_name = "language"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          language_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.WarrantFilterListRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::filter_config(this), target, stream);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_language(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantFilterListRequest)
  return target;
}

size_t WarrantFilterListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridgeapp.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *filter_config_);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_language());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantFilterListRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListRequest::GetClassData() const { return &_class_data_; }

void WarrantFilterListRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantFilterListRequest *>(to)->MergeFrom(
      static_cast<const WarrantFilterListRequest &>(from));
}


void WarrantFilterListRequest::MergeFrom(const WarrantFilterListRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_filter_config()) {
    _internal_mutable_filter_config()->::longbridgeapp::quote::v1::FilterConfig::MergeFrom(from._internal_filter_config());
  }
  if (from._internal_language() != 0) {
    _internal_set_language(from._internal_language());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListRequest::CopyFrom(const WarrantFilterListRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantFilterListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListRequest::IsInitialized() const {
  return true;
}

void WarrantFilterListRequest::InternalSwap(WarrantFilterListRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, language_)
      + sizeof(WarrantFilterListRequest::language_)
      - PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, filter_config_)>(
          reinterpret_cast<char*>(&filter_config_),
          reinterpret_cast<char*>(&other->filter_config_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[34]);
}

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

class FilterConfig::_Internal {
 public:
};

FilterConfig::FilterConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  type_(arena),
  issuer_(arena),
  expiry_date_(arena),
  price_type_(arena),
  status_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.FilterConfig)
}
FilterConfig::FilterConfig(const FilterConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      type_(from.type_),
      issuer_(from.issuer_),
      expiry_date_(from.expiry_date_),
      price_type_(from.price_type_),
      status_(from.status_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&sort_by_, &from.sort_by_,
    static_cast<size_t>(reinterpret_cast<char*>(&sort_count_) -
    reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.FilterConfig)
}

inline void FilterConfig::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&sort_by_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&sort_count_) -
    reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
}

FilterConfig::~FilterConfig() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.FilterConfig)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void FilterConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void FilterConfig::ArenaDtor(void* object) {
  FilterConfig* _this = reinterpret_cast< FilterConfig* >(object);
  (void)_this;
}
void FilterConfig::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FilterConfig::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void FilterConfig::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.Clear();
  issuer_.Clear();
  expiry_date_.Clear();
  price_type_.Clear();
  status_.Clear();
  ::memset(&sort_by_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&sort_count_) -
      reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterConfig::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 sort_by = 1 [json_name = "sortBy"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          sort_by_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_order = 2 [json_name = "sortOrder"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sort_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_offset = 3 [json_name = "sortOffset"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          sort_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_count = 4 [json_name = "sortCount"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          sort_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 type = 5 [json_name = "type"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 40) {
          _internal_add_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 issuer = 6 [json_name = "issuer"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_issuer(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 48) {
          _internal_add_issuer(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_expiry_date(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 56) {
          _internal_add_expiry_date(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 price_type = 8 [json_name = "priceType"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_price_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 64) {
          _internal_add_price_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 status = 9 [json_name = "status"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_status(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 72) {
          _internal_add_status(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterConfig::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_sort_by(), target);
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_sort_order(), target);
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_sort_offset(), target);
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_sort_count(), target);
  }

  // repeated int32 type = 5 [json_name = "type"];
  {
    int byte_size = _type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          5, _internal_type(), byte_size, target);
    }
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    int byte_size = _issuer_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          6, _internal_issuer(), byte_size, target);
    }
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    int byte_size = _expiry_date_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          7, _internal_expiry_date(), byte_size, target);
    }
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    int byte_size = _price_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          8, _internal_price_type(), byte_size, target);
    }
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    int byte_size = _status_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          9, _internal_status(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.FilterConfig)
  return target;
}

size_t FilterConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.FilterConfig)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 type = 5 [json_name = "type"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->type_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->issuer_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _issuer_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->expiry_date_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _expiry_date_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->price_type_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _price_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->status_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _status_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_sort_by());
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_sort_order());
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_sort_offset());
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_sort_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterConfig::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    FilterConfig::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterConfig::GetClassData() const { return &_class_data_; }

void FilterConfig::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<FilterConfig *>(to)->MergeFrom(
      static_cast<const FilterConfig &>(from));
}


void FilterConfig::MergeFrom(const FilterConfig& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.FilterConfig)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  type_.MergeFrom(from.type_);
  issuer_.MergeFrom(from.issuer_);
  expiry_date_.MergeFrom(from.expiry_date_);
  price_type_.MergeFrom(from.price_type_);
  status_.MergeFrom(from.status_);
  if (from._internal_sort_by() != 0) {
    _internal_set_sort_by(from._internal_sort_by());
  }
  if (from._internal_sort_order() != 0) {
    _internal_set_sort_order(from._internal_sort_order());
  }
  if (from._internal_sort_offset() != 0) {
    _internal_set_sort_offset(from._internal_sort_offset());
  }
  if (from._internal_sort_count() != 0) {
    _internal_set_sort_count(from._internal_sort_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterConfig::CopyFrom(const FilterConfig& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.FilterConfig)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterConfig::IsInitialized() const {
  return true;
}

void FilterConfig::InternalSwap(FilterConfig* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  type_.InternalSwap(&other->type_);
  issuer_.InternalSwap(&other->issuer_);
  expiry_date_.InternalSwap(&other->expiry_date_);
  price_type_.InternalSwap(&other->price_type_);
  status_.InternalSwap(&other->status_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FilterConfig, sort_count_)
      + sizeof(FilterConfig::sort_count_)
      - PROTOBUF_FIELD_OFFSET(FilterConfig, sort_by_)>(
          reinterpret_cast<char*>(&sort_by_),
          reinterpret_cast<char*>(&other->sort_by_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterConfig::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[35]);
}

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

class WarrantFilterListResponse::_Internal {
 public:
};

WarrantFilterListResponse::WarrantFilterListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  warrant_list_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
}
WarrantFilterListResponse::WarrantFilterListResponse(const WarrantFilterListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      warrant_list_(from.warrant_list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  total_count_ = from.total_count_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
}

inline void WarrantFilterListResponse::SharedCtor() {
total_count_ = 0;
}

WarrantFilterListResponse::~WarrantFilterListResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.WarrantFilterListResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void WarrantFilterListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void WarrantFilterListResponse::ArenaDtor(void* object) {
  WarrantFilterListResponse* _this = reinterpret_cast< WarrantFilterListResponse* >(object);
  (void)_this;
}
void WarrantFilterListResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void WarrantFilterListResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantFilterListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  warrant_list_.Clear();
  total_count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_warrant_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // int32 total_count = 2 [json_name = "totalCount"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          total_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_warrant_list_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_warrant_list(i), target, stream);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_total_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.WarrantFilterListResponse)
  return target;
}

size_t WarrantFilterListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  total_size += 1UL * this->_internal_warrant_list_size();
  for (const auto& msg : this->warrant_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_total_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantFilterListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListResponse::GetClassData() const { return &_class_data_; }

void WarrantFilterListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantFilterListResponse *>(to)->MergeFrom(
      static_cast<const WarrantFilterListResponse &>(from));
}


void WarrantFilterListResponse::MergeFrom(const WarrantFilterListResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  warrant_list_.MergeFrom(from.warrant_list_);
  if (from._internal_total_count() != 0) {
    _internal_set_total_count(from._internal_total_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListResponse::CopyFrom(const WarrantFilterListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.WarrantFilterListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListResponse::IsInitialized() const {
  return true;
}

void WarrantFilterListResponse::InternalSwap(WarrantFilterListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  warrant_list_.InternalSwap(&other->warrant_list_);
  swap(total_count_, other->total_count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[36]);
}

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

class FilterWarrant::_Internal {
 public:
};

FilterWarrant::FilterWarrant(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.FilterWarrant)
}
FilterWarrant::FilterWarrant(const FilterWarrant& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), 
      GetArenaForAllocation());
  }
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  change_rate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_rate_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_rate().empty()) {
    change_rate_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_change_rate(), 
      GetArenaForAllocation());
  }
  change_val_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_val_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_val().empty()) {
    change_val_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_change_val(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  upper_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    upper_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    upper_strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_upper_strike_price(), 
      GetArenaForAllocation());
  }
  lower_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    lower_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    lower_strike_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_lower_strike_price(), 
      GetArenaForAllocation());
  }
  outstanding_qty_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_qty_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_qty().empty()) {
    outstanding_qty_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_outstanding_qty(), 
      GetArenaForAllocation());
  }
  outstanding_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    outstanding_ratio_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_outstanding_ratio(), 
      GetArenaForAllocation());
  }
  premium_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    premium_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_premium().empty()) {
    premium_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_premium(), 
      GetArenaForAllocation());
  }
  itm_otm_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    itm_otm_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_itm_otm().empty()) {
    itm_otm_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_itm_otm(), 
      GetArenaForAllocation());
  }
  implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  delta_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    delta_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_delta().empty()) {
    delta_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_delta(), 
      GetArenaForAllocation());
  }
  call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    call_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_call_price(), 
      GetArenaForAllocation());
  }
  to_call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    to_call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_to_call_price().empty()) {
    to_call_price_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_to_call_price(), 
      GetArenaForAllocation());
  }
  effective_leverage_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    effective_leverage_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_effective_leverage().empty()) {
    effective_leverage_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_effective_leverage(), 
      GetArenaForAllocation());
  }
  leverage_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    leverage_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_leverage_ratio().empty()) {
    leverage_ratio_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_leverage_ratio(), 
      GetArenaForAllocation());
  }
  conversion_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    conversion_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    conversion_ratio_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_conversion_ratio(), 
      GetArenaForAllocation());
  }
  balance_point_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    balance_point_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_balance_point().empty()) {
    balance_point_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_balance_point(), 
      GetArenaForAllocation());
  }
  state_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    state_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_state().empty()) {
    state_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_state(), 
      GetArenaForAllocation());
  }
  volume_ = from.volume_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.FilterWarrant)
}

inline void FilterWarrant::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_rate_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_rate_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_val_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_val_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
upper_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  upper_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
lower_strike_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  lower_strike_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_qty_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_qty_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
premium_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  premium_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
itm_otm_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  itm_otm_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
implied_volatility_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
delta_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  delta_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
to_call_price_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  to_call_price_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
effective_leverage_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  effective_leverage_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
leverage_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  leverage_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
conversion_ratio_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  conversion_ratio_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
balance_point_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  balance_point_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
state_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  state_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
volume_ = int64_t{0};
}

FilterWarrant::~FilterWarrant() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.FilterWarrant)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void FilterWarrant::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  change_rate_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  change_val_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  expiry_date_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  upper_strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  lower_strike_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  outstanding_qty_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  outstanding_ratio_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  premium_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  itm_otm_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  implied_volatility_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  delta_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  call_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  to_call_price_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  effective_leverage_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  leverage_ratio_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  conversion_ratio_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  balance_point_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  state_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void FilterWarrant::ArenaDtor(void* object) {
  FilterWarrant* _this = reinterpret_cast< FilterWarrant* >(object);
  (void)_this;
}
void FilterWarrant::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FilterWarrant::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void FilterWarrant::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  name_.ClearToEmpty();
  last_done_.ClearToEmpty();
  change_rate_.ClearToEmpty();
  change_val_.ClearToEmpty();
  turnover_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  upper_strike_price_.ClearToEmpty();
  lower_strike_price_.ClearToEmpty();
  outstanding_qty_.ClearToEmpty();
  outstanding_ratio_.ClearToEmpty();
  premium_.ClearToEmpty();
  itm_otm_.ClearToEmpty();
  implied_volatility_.ClearToEmpty();
  delta_.ClearToEmpty();
  call_price_.ClearToEmpty();
  to_call_price_.ClearToEmpty();
  effective_leverage_.ClearToEmpty();
  leverage_ratio_.ClearToEmpty();
  conversion_ratio_.ClearToEmpty();
  balance_point_.ClearToEmpty();
  state_.ClearToEmpty();
  volume_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterWarrant::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name = 2 [json_name = "name"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.name"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string change_rate = 4 [json_name = "changeRate"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_change_rate();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.change_rate"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string change_val = 5 [json_name = "changeVal"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_change_val();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.change_val"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 6 [json_name = "volume"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 7 [json_name = "turnover"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 8 [json_name = "expiryDate"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.expiry_date"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 9 [json_name = "strikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.upper_strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.lower_strike_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string outstanding_qty = 12 [json_name = "outstandingQty"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_outstanding_qty();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.outstanding_qty"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.outstanding_ratio"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string premium = 14 [json_name = "premium"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_premium();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.premium"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string itm_otm = 15 [json_name = "itmOtm"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_itm_otm();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.itm_otm"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string implied_volatility = 16 [json_name = "impliedVolatility"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.implied_volatility"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string delta = 17 [json_name = "delta"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_delta();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.delta"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string call_price = 18 [json_name = "callPrice"];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          auto str = _internal_mutable_call_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.call_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string to_call_price = 19 [json_name = "toCallPrice"];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          auto str = _internal_mutable_to_call_price();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.to_call_price"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string effective_leverage = 20 [json_name = "effectiveLeverage"];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_effective_leverage();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.effective_leverage"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string leverage_ratio = 21 [json_name = "leverageRatio"];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          auto str = _internal_mutable_leverage_ratio();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.leverage_ratio"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 22 [json_name = "conversionRatio"];
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.conversion_ratio"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string balance_point = 23 [json_name = "balancePoint"];
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_balance_point();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.balance_point"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string state = 24 [json_name = "state"];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          auto str = _internal_mutable_state();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.FilterWarrant.state"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterWarrant::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_rate().data(), static_cast<int>(this->_internal_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.change_rate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_change_rate(), target);
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_val().data(), static_cast<int>(this->_internal_change_val().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.change_val");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_change_val(), target);
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(6, this->_internal_volume(), target);
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.turnover");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_turnover(), target);
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.expiry_date");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_expiry_date(), target);
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_lower_strike_price(), target);
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_qty().data(), static_cast<int>(this->_internal_outstanding_qty().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.outstanding_qty");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_outstanding_qty(), target);
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_outstanding_ratio(), target);
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_premium().data(), static_cast<int>(this->_internal_premium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.premium");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_premium(), target);
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_itm_otm().data(), static_cast<int>(this->_internal_itm_otm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.itm_otm");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_itm_otm(), target);
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_implied_volatility(), target);
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_delta().data(), static_cast<int>(this->_internal_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.delta");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_delta(), target);
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.call_price");
    target = stream->WriteStringMaybeAliased(
        18, this->_internal_call_price(), target);
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_to_call_price().data(), static_cast<int>(this->_internal_to_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.to_call_price");
    target = stream->WriteStringMaybeAliased(
        19, this->_internal_to_call_price(), target);
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_effective_leverage().data(), static_cast<int>(this->_internal_effective_leverage().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.effective_leverage");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_effective_leverage(), target);
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_leverage_ratio().data(), static_cast<int>(this->_internal_leverage_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.leverage_ratio");
    target = stream->WriteStringMaybeAliased(
        21, this->_internal_leverage_ratio(), target);
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        22, this->_internal_conversion_ratio(), target);
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_balance_point().data(), static_cast<int>(this->_internal_balance_point().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.balance_point");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_balance_point(), target);
  }

  // string state = 24 [json_name = "state"];
  if (!this->_internal_state().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_state().data(), static_cast<int>(this->_internal_state().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.FilterWarrant.state");
    target = stream->WriteStringMaybeAliased(
        24, this->_internal_state(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.FilterWarrant)
  return target;
}

size_t FilterWarrant::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.FilterWarrant)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_rate());
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_val());
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_qty());
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_premium());
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_itm_otm());
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_delta());
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_to_call_price());
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_effective_leverage());
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_leverage_ratio());
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_balance_point());
  }

  // string state = 24 [json_name = "state"];
  if (!this->_internal_state().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_state());
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterWarrant::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    FilterWarrant::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterWarrant::GetClassData() const { return &_class_data_; }

void FilterWarrant::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<FilterWarrant *>(to)->MergeFrom(
      static_cast<const FilterWarrant &>(from));
}


void FilterWarrant::MergeFrom(const FilterWarrant& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.FilterWarrant)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_change_rate().empty()) {
    _internal_set_change_rate(from._internal_change_rate());
  }
  if (!from._internal_change_val().empty()) {
    _internal_set_change_val(from._internal_change_val());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_outstanding_qty().empty()) {
    _internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_premium().empty()) {
    _internal_set_premium(from._internal_premium());
  }
  if (!from._internal_itm_otm().empty()) {
    _internal_set_itm_otm(from._internal_itm_otm());
  }
  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_delta().empty()) {
    _internal_set_delta(from._internal_delta());
  }
  if (!from._internal_call_price().empty()) {
    _internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_to_call_price().empty()) {
    _internal_set_to_call_price(from._internal_to_call_price());
  }
  if (!from._internal_effective_leverage().empty()) {
    _internal_set_effective_leverage(from._internal_effective_leverage());
  }
  if (!from._internal_leverage_ratio().empty()) {
    _internal_set_leverage_ratio(from._internal_leverage_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_balance_point().empty()) {
    _internal_set_balance_point(from._internal_balance_point());
  }
  if (!from._internal_state().empty()) {
    _internal_set_state(from._internal_state());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterWarrant::CopyFrom(const FilterWarrant& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.FilterWarrant)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterWarrant::IsInitialized() const {
  return true;
}

void FilterWarrant::InternalSwap(FilterWarrant* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &change_rate_, lhs_arena,
      &other->change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &change_val_, lhs_arena,
      &other->change_val_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &upper_strike_price_, lhs_arena,
      &other->upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &lower_strike_price_, lhs_arena,
      &other->lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &outstanding_qty_, lhs_arena,
      &other->outstanding_qty_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &outstanding_ratio_, lhs_arena,
      &other->outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &premium_, lhs_arena,
      &other->premium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &itm_otm_, lhs_arena,
      &other->itm_otm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &delta_, lhs_arena,
      &other->delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &call_price_, lhs_arena,
      &other->call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &to_call_price_, lhs_arena,
      &other->to_call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &effective_leverage_, lhs_arena,
      &other->effective_leverage_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &leverage_ratio_, lhs_arena,
      &other->leverage_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &conversion_ratio_, lhs_arena,
      &other->conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &balance_point_, lhs_arena,
      &other->balance_point_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &state_, lhs_arena,
      &other->state_, rhs_arena
  );
  swap(volume_, other->volume_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterWarrant::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[37]);
}

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

class MarketTradePeriodResponse::_Internal {
 public:
};

MarketTradePeriodResponse::MarketTradePeriodResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  market_trade_session_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
}
MarketTradePeriodResponse::MarketTradePeriodResponse(const MarketTradePeriodResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      market_trade_session_(from.market_trade_session_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
}

inline void MarketTradePeriodResponse::SharedCtor() {
}

MarketTradePeriodResponse::~MarketTradePeriodResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void MarketTradePeriodResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MarketTradePeriodResponse::ArenaDtor(void* object) {
  MarketTradePeriodResponse* _this = reinterpret_cast< MarketTradePeriodResponse* >(object);
  (void)_this;
}
void MarketTradePeriodResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MarketTradePeriodResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradePeriodResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  market_trade_session_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriodResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_market_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriodResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_market_trade_session_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_market_trade_session(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  return target;
}

size_t MarketTradePeriodResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  total_size += 1UL * this->_internal_market_trade_session_size();
  for (const auto& msg : this->market_trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriodResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradePeriodResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriodResponse::GetClassData() const { return &_class_data_; }

void MarketTradePeriodResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradePeriodResponse *>(to)->MergeFrom(
      static_cast<const MarketTradePeriodResponse &>(from));
}


void MarketTradePeriodResponse::MergeFrom(const MarketTradePeriodResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  market_trade_session_.MergeFrom(from.market_trade_session_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriodResponse::CopyFrom(const MarketTradePeriodResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradePeriodResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriodResponse::IsInitialized() const {
  return true;
}

void MarketTradePeriodResponse::InternalSwap(MarketTradePeriodResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  market_trade_session_.InternalSwap(&other->market_trade_session_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriodResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[38]);
}

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

class MarketTradePeriod::_Internal {
 public:
};

MarketTradePeriod::MarketTradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_session_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradePeriod)
}
MarketTradePeriod::MarketTradePeriod(const MarketTradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_session_(from.trade_session_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  market_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    market_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    market_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_market(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradePeriod)
}

inline void MarketTradePeriod::SharedCtor() {
market_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  market_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradePeriod::~MarketTradePeriod() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradePeriod)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void MarketTradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  market_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void MarketTradePeriod::ArenaDtor(void* object) {
  MarketTradePeriod* _this = reinterpret_cast< MarketTradePeriod* >(object);
  (void)_this;
}
void MarketTradePeriod::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MarketTradePeriod::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_session_.Clear();
  market_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriod::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradePeriod.market"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradePeriod.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_trade_session_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, this->_internal_trade_session(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradePeriod)
  return target;
}

size_t MarketTradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  total_size += 1UL * this->_internal_trade_session_size();
  for (const auto& msg : this->trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriod::GetClassData() const { return &_class_data_; }

void MarketTradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradePeriod *>(to)->MergeFrom(
      static_cast<const MarketTradePeriod &>(from));
}


void MarketTradePeriod::MergeFrom(const MarketTradePeriod& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradePeriod)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_session_.MergeFrom(from.trade_session_);
  if (!from._internal_market().empty()) {
    _internal_set_market(from._internal_market());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriod::CopyFrom(const MarketTradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriod::IsInitialized() const {
  return true;
}

void MarketTradePeriod::InternalSwap(MarketTradePeriod* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_session_.InternalSwap(&other->trade_session_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &market_, lhs_arena,
      &other->market_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriod::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[39]);
}

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

class TradePeriod::_Internal {
 public:
};

TradePeriod::TradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.TradePeriod)
}
TradePeriod::TradePeriod(const TradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&beg_time_, &from.beg_time_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.TradePeriod)
}

inline void TradePeriod::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&beg_time_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
}

TradePeriod::~TradePeriod() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.TradePeriod)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void TradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void TradePeriod::ArenaDtor(void* object) {
  TradePeriod* _this = reinterpret_cast< TradePeriod* >(object);
  (void)_this;
}
void TradePeriod::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void TradePeriod::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&beg_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TradePeriod::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 beg_time = 1 [json_name = "begTime"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          beg_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 end_time = 2 [json_name = "endTime"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          end_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_beg_time(), target);
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end_time(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.TradePeriod)
  return target;
}

size_t TradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.TradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_beg_time());
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_end_time());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    TradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TradePeriod::GetClassData() const { return &_class_data_; }

void TradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TradePeriod *>(to)->MergeFrom(
      static_cast<const TradePeriod &>(from));
}


void TradePeriod::MergeFrom(const TradePeriod& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.TradePeriod)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_beg_time() != 0) {
    _internal_set_beg_time(from._internal_beg_time());
  }
  if (from._internal_end_time() != 0) {
    _internal_set_end_time(from._internal_end_time());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TradePeriod::CopyFrom(const TradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.TradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TradePeriod::IsInitialized() const {
  return true;
}

void TradePeriod::InternalSwap(TradePeriod* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TradePeriod, trade_session_)
      + sizeof(TradePeriod::trade_session_)
      - PROTOBUF_FIELD_OFFSET(TradePeriod, beg_time_)>(
          reinterpret_cast<char*>(&beg_time_),
          reinterpret_cast<char*>(&other->beg_time_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TradePeriod::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[40]);
}

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

class SubscriptionRequest::_Internal {
 public:
};

SubscriptionRequest::SubscriptionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscriptionRequest)
}
SubscriptionRequest::SubscriptionRequest(const SubscriptionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscriptionRequest)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionRequest::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[41]);
}

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

class SubscriptionResponse::_Internal {
 public:
};

SubscriptionResponse::SubscriptionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  sub_list_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscriptionResponse)
}
SubscriptionResponse::SubscriptionResponse(const SubscriptionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      sub_list_(from.sub_list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscriptionResponse)
}

inline void SubscriptionResponse::SharedCtor() {
}

SubscriptionResponse::~SubscriptionResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubscriptionResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SubscriptionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SubscriptionResponse::ArenaDtor(void* object) {
  SubscriptionResponse* _this = reinterpret_cast< SubscriptionResponse* >(object);
  (void)_this;
}
void SubscriptionResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SubscriptionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubscriptionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sub_list_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscriptionResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_sub_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscriptionResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_sub_list_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_sub_list(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubscriptionResponse)
  return target;
}

size_t SubscriptionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubscriptionResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  total_size += 1UL * this->_internal_sub_list_size();
  for (const auto& msg : this->sub_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubscriptionResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionResponse::GetClassData() const { return &_class_data_; }

void SubscriptionResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubscriptionResponse *>(to)->MergeFrom(
      static_cast<const SubscriptionResponse &>(from));
}


void SubscriptionResponse::MergeFrom(const SubscriptionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubscriptionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  sub_list_.MergeFrom(from.sub_list_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscriptionResponse::CopyFrom(const SubscriptionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubscriptionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscriptionResponse::IsInitialized() const {
  return true;
}

void SubscriptionResponse::InternalSwap(SubscriptionResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  sub_list_.InternalSwap(&other->sub_list_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[42]);
}

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

class SubTypeList::_Internal {
 public:
};

SubTypeList::SubTypeList(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  sub_type_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubTypeList)
}
SubTypeList::SubTypeList(const SubTypeList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubTypeList)
}

inline void SubTypeList::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SubTypeList::~SubTypeList() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubTypeList)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SubTypeList::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void SubTypeList::ArenaDtor(void* object) {
  SubTypeList* _this = reinterpret_cast< SubTypeList* >(object);
  (void)_this;
}
void SubTypeList::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SubTypeList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubTypeList::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sub_type_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubTypeList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SubTypeList.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubTypeList::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SubTypeList.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubTypeList)
  return target;
}

size_t SubTypeList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubTypeList)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubTypeList::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubTypeList::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubTypeList::GetClassData() const { return &_class_data_; }

void SubTypeList::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubTypeList *>(to)->MergeFrom(
      static_cast<const SubTypeList &>(from));
}


void SubTypeList::MergeFrom(const SubTypeList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubTypeList)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  sub_type_.MergeFrom(from.sub_type_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubTypeList::CopyFrom(const SubTypeList& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubTypeList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubTypeList::IsInitialized() const {
  return true;
}

void SubTypeList::InternalSwap(SubTypeList* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  sub_type_.InternalSwap(&other->sub_type_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SubTypeList::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[43]);
}

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

class SubscribeRequest::_Internal {
 public:
};

SubscribeRequest::SubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena),
  sub_type_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.SubscribeRequest)
}
SubscribeRequest::SubscribeRequest(const SubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  is_first_push_ = from.is_first_push_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.SubscribeRequest)
}

inline void SubscribeRequest::SharedCtor() {
is_first_push_ = false;
}

SubscribeRequest::~SubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.SubscribeRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void SubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SubscribeRequest::ArenaDtor(void* object) {
  SubscribeRequest* _this = reinterpret_cast< SubscribeRequest* >(object);
  (void)_this;
}
void SubscribeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SubscribeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  sub_type_.Clear();
  is_first_push_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscribeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.SubscribeRequest.symbol"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool is_first_push = 3 [json_name = "isFirstPush"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          is_first_push_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.SubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_is_first_push(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.SubscribeRequest)
  return target;
}

size_t SubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.SubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscribeRequest::GetClassData() const { return &_class_data_; }

void SubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubscribeRequest *>(to)->MergeFrom(
      static_cast<const SubscribeRequest &>(from));
}


void SubscribeRequest::MergeFrom(const SubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.SubscribeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  sub_type_.MergeFrom(from.sub_type_);
  if (from._internal_is_first_push() != 0) {
    _internal_set_is_first_push(from._internal_is_first_push());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscribeRequest::CopyFrom(const SubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.SubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeRequest::IsInitialized() const {
  return true;
}

void SubscribeRequest::InternalSwap(SubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
  sub_type_.InternalSwap(&other->sub_type_);
  swap(is_first_push_, other->is_first_push_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscribeRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[44]);
}

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

class UnsubscribeRequest::_Internal {
 public:
};

UnsubscribeRequest::UnsubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena),
  sub_type_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.UnsubscribeRequest)
}
UnsubscribeRequest::UnsubscribeRequest(const UnsubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  unsub_all_ = from.unsub_all_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.UnsubscribeRequest)
}

inline void UnsubscribeRequest::SharedCtor() {
unsub_all_ = false;
}

UnsubscribeRequest::~UnsubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.UnsubscribeRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void UnsubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void UnsubscribeRequest::ArenaDtor(void* object) {
  UnsubscribeRequest* _this = reinterpret_cast< UnsubscribeRequest* >(object);
  (void)_this;
}
void UnsubscribeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void UnsubscribeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UnsubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  sub_type_.Clear();
  unsub_all_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UnsubscribeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.UnsubscribeRequest.symbol"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridgeapp::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool unsub_all = 3 [json_name = "unsubAll"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          unsub_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UnsubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.UnsubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_unsub_all(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.UnsubscribeRequest)
  return target;
}

size_t UnsubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  // repeated .longbridgeapp.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<int32_t>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UnsubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeRequest::GetClassData() const { return &_class_data_; }

void UnsubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UnsubscribeRequest *>(to)->MergeFrom(
      static_cast<const UnsubscribeRequest &>(from));
}


void UnsubscribeRequest::MergeFrom(const UnsubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  sub_type_.MergeFrom(from.sub_type_);
  if (from._internal_unsub_all() != 0) {
    _internal_set_unsub_all(from._internal_unsub_all());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UnsubscribeRequest::CopyFrom(const UnsubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.UnsubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UnsubscribeRequest::IsInitialized() const {
  return true;
}

void UnsubscribeRequest::InternalSwap(UnsubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
  sub_type_.InternalSwap(&other->sub_type_);
  swap(unsub_all_, other->unsub_all_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[45]);
}

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

class UnsubscribeResponse::_Internal {
 public:
};

UnsubscribeResponse::UnsubscribeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.UnsubscribeResponse)
}
UnsubscribeResponse::UnsubscribeResponse(const UnsubscribeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.UnsubscribeResponse)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeResponse::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[46]);
}

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

class PushQuote::_Internal {
 public:
};

PushQuote::PushQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushQuote)
}
PushQuote::PushQuote(const PushQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_last_done(), 
      GetArenaForAllocation());
  }
  open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_turnover(), 
      GetArenaForAllocation());
  }
  ::memcpy(&sequence_, &from.sequence_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&sequence_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushQuote)
}

inline void PushQuote::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&sequence_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&sequence_)) + sizeof(trade_session_));
}

PushQuote::~PushQuote() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushQuote)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void PushQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  last_done_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  open_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  high_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  low_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  turnover_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PushQuote::ArenaDtor(void* object) {
  PushQuote* _this = reinterpret_cast< PushQuote* >(object);
  (void)_this;
}
void PushQuote::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PushQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  ::memset(&sequence_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&sequence_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushQuote::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.last_done"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.open"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.high"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.low"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushQuote.turnover"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridgeapp::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridgeapp::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      11, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushQuote)
  return target;
}

size_t PushQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridgeapp.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  // .longbridgeapp.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushQuote::GetClassData() const { return &_class_data_; }

void PushQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushQuote *>(to)->MergeFrom(
      static_cast<const PushQuote &>(from));
}


void PushQuote::MergeFrom(const PushQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushQuote::CopyFrom(const PushQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushQuote::IsInitialized() const {
  return true;
}

void PushQuote::InternalSwap(PushQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushQuote, trade_session_)
      + sizeof(PushQuote::trade_session_)
      - PROTOBUF_FIELD_OFFSET(PushQuote, sequence_)>(
          reinterpret_cast<char*>(&sequence_),
          reinterpret_cast<char*>(&other->sequence_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PushQuote::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[47]);
}

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

class PushDepth::_Internal {
 public:
};

PushDepth::PushDepth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_(arena),
  bid_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushDepth)
}
PushDepth::PushDepth(const PushDepth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_(from.ask_),
      bid_(from.bid_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushDepth)
}

inline void PushDepth::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushDepth::~PushDepth() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushDepth)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void PushDepth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PushDepth::ArenaDtor(void* object) {
  PushDepth* _this = reinterpret_cast< PushDepth* >(object);
  (void)_this;
}
void PushDepth::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PushDepth::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushDepth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_.Clear();
  bid_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushDepth::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushDepth.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushDepth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushDepth.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_ask_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_ask(i), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_bid_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, this->_internal_bid(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushDepth)
  return target;
}

size_t PushDepth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushDepth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Depth ask = 3 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Depth bid = 4 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushDepth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushDepth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushDepth::GetClassData() const { return &_class_data_; }

void PushDepth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushDepth *>(to)->MergeFrom(
      static_cast<const PushDepth &>(from));
}


void PushDepth::MergeFrom(const PushDepth& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushDepth)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_.MergeFrom(from.ask_);
  bid_.MergeFrom(from.bid_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushDepth::CopyFrom(const PushDepth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushDepth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushDepth::IsInitialized() const {
  return true;
}

void PushDepth::InternalSwap(PushDepth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_.InternalSwap(&other->ask_);
  bid_.InternalSwap(&other->bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushDepth::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[48]);
}

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

class PushBrokers::_Internal {
 public:
};

PushBrokers::PushBrokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_brokers_(arena),
  bid_brokers_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushBrokers)
}
PushBrokers::PushBrokers(const PushBrokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_brokers_(from.ask_brokers_),
      bid_brokers_(from.bid_brokers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushBrokers)
}

inline void PushBrokers::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushBrokers::~PushBrokers() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushBrokers)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void PushBrokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PushBrokers::ArenaDtor(void* object) {
  PushBrokers* _this = reinterpret_cast< PushBrokers* >(object);
  (void)_this;
}
void PushBrokers::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PushBrokers::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushBrokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_brokers_.Clear();
  bid_brokers_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushBrokers::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushBrokers.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushBrokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushBrokers.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_ask_brokers_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_ask_brokers(i), target, stream);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_bid_brokers_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, this->_internal_bid_brokers(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushBrokers)
  return target;
}

size_t PushBrokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushBrokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridgeapp.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushBrokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushBrokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushBrokers::GetClassData() const { return &_class_data_; }

void PushBrokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushBrokers *>(to)->MergeFrom(
      static_cast<const PushBrokers &>(from));
}


void PushBrokers::MergeFrom(const PushBrokers& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushBrokers)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_brokers_.MergeFrom(from.ask_brokers_);
  bid_brokers_.MergeFrom(from.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushBrokers::CopyFrom(const PushBrokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushBrokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushBrokers::IsInitialized() const {
  return true;
}

void PushBrokers::InternalSwap(PushBrokers* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_brokers_.InternalSwap(&other->ask_brokers_);
  bid_brokers_.InternalSwap(&other->bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushBrokers::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[49]);
}

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

class PushTrade::_Internal {
 public:
};

PushTrade::PushTrade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.PushTrade)
}
PushTrade::PushTrade(const PushTrade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_(from.trade_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.PushTrade)
}

inline void PushTrade::SharedCtor() {
symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushTrade::~PushTrade() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.PushTrade)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void PushTrade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void PushTrade::ArenaDtor(void* object) {
  PushTrade* _this = reinterpret_cast< PushTrade* >(object);
  (void)_this;
}
void PushTrade::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void PushTrade::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushTrade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushTrade::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.PushTrade.symbol"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushTrade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.PushTrade.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_trade_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_trade(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.PushTrade)
  return target;
}

size_t PushTrade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.PushTrade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridgeapp.quote.v1.Trade trade = 3 [json_name = "trade"];
  total_size += 1UL * this->_internal_trade_size();
  for (const auto& msg : this->trade_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushTrade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushTrade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushTrade::GetClassData() const { return &_class_data_; }

void PushTrade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushTrade *>(to)->MergeFrom(
      static_cast<const PushTrade &>(from));
}


void PushTrade::MergeFrom(const PushTrade& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.PushTrade)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_.MergeFrom(from.trade_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushTrade::CopyFrom(const PushTrade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.PushTrade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTrade::IsInitialized() const {
  return true;
}

void PushTrade::InternalSwap(PushTrade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_.InternalSwap(&other->trade_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushTrade::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[50]);
}

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

class MarketTradeDayRequest::_Internal {
 public:
};

MarketTradeDayRequest::MarketTradeDayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
}
MarketTradeDayRequest::MarketTradeDayRequest(const MarketTradeDayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  market_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    market_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    market_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_market(), 
      GetArenaForAllocation());
  }
  beg_day_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    beg_day_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_beg_day().empty()) {
    beg_day_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_beg_day(), 
      GetArenaForAllocation());
  }
  end_day_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    end_day_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_end_day().empty()) {
    end_day_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_end_day(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
}

inline void MarketTradeDayRequest::SharedCtor() {
market_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  market_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
beg_day_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  beg_day_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
end_day_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  end_day_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradeDayRequest::~MarketTradeDayRequest() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradeDayRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void MarketTradeDayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  market_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  beg_day_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  end_day_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void MarketTradeDayRequest::ArenaDtor(void* object) {
  MarketTradeDayRequest* _this = reinterpret_cast< MarketTradeDayRequest* >(object);
  (void)_this;
}
void MarketTradeDayRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MarketTradeDayRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradeDayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  market_.ClearToEmpty();
  beg_day_.ClearToEmpty();
  end_day_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.market"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string beg_day = 2 [json_name = "begDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_beg_day();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.beg_day"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string end_day = 3 [json_name = "endDay"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_end_day();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayRequest.end_day"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_beg_day().data(), static_cast<int>(this->_internal_beg_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.beg_day");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_beg_day(), target);
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_end_day().data(), static_cast<int>(this->_internal_end_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayRequest.end_day");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_end_day(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradeDayRequest)
  return target;
}

size_t MarketTradeDayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_beg_day());
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_end_day());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradeDayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayRequest::GetClassData() const { return &_class_data_; }

void MarketTradeDayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradeDayRequest *>(to)->MergeFrom(
      static_cast<const MarketTradeDayRequest &>(from));
}


void MarketTradeDayRequest::MergeFrom(const MarketTradeDayRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_market().empty()) {
    _internal_set_market(from._internal_market());
  }
  if (!from._internal_beg_day().empty()) {
    _internal_set_beg_day(from._internal_beg_day());
  }
  if (!from._internal_end_day().empty()) {
    _internal_set_end_day(from._internal_end_day());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayRequest::CopyFrom(const MarketTradeDayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradeDayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayRequest::IsInitialized() const {
  return true;
}

void MarketTradeDayRequest::InternalSwap(MarketTradeDayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &market_, lhs_arena,
      &other->market_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &beg_day_, lhs_arena,
      &other->beg_day_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &end_day_, lhs_arena,
      &other->end_day_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayRequest::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[51]);
}

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

class MarketTradeDayResponse::_Internal {
 public:
};

MarketTradeDayResponse::MarketTradeDayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_day_(arena),
  half_trade_day_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
}
MarketTradeDayResponse::MarketTradeDayResponse(const MarketTradeDayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_day_(from.trade_day_),
      half_trade_day_(from.half_trade_day_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
}

inline void MarketTradeDayResponse::SharedCtor() {
}

MarketTradeDayResponse::~MarketTradeDayResponse() {
  // @@protoc_insertion_point(destructor:longbridgeapp.quote.v1.MarketTradeDayResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void MarketTradeDayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MarketTradeDayResponse::ArenaDtor(void* object) {
  MarketTradeDayResponse* _this = reinterpret_cast< MarketTradeDayResponse* >(object);
  (void)_this;
}
void MarketTradeDayResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void MarketTradeDayResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradeDayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_day_.Clear();
  half_trade_day_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string trade_day = 1 [json_name = "tradeDay"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_trade_day();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayResponse.trade_day"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_half_trade_day();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "longbridgeapp.quote.v1.MarketTradeDayResponse.half_trade_day"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  for (int i = 0, n = this->_internal_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayResponse.trade_day");
    target = stream->WriteString(1, s, target);
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  for (int i = 0, n = this->_internal_half_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_half_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridgeapp.quote.v1.MarketTradeDayResponse.half_trade_day");
    target = stream->WriteString(2, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridgeapp.quote.v1.MarketTradeDayResponse)
  return target;
}

size_t MarketTradeDayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(trade_day_.size());
  for (int i = 0, n = trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      trade_day_.Get(i));
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(half_trade_day_.size());
  for (int i = 0, n = half_trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      half_trade_day_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradeDayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayResponse::GetClassData() const { return &_class_data_; }

void MarketTradeDayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradeDayResponse *>(to)->MergeFrom(
      static_cast<const MarketTradeDayResponse &>(from));
}


void MarketTradeDayResponse::MergeFrom(const MarketTradeDayResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_day_.MergeFrom(from.trade_day_);
  half_trade_day_.MergeFrom(from.half_trade_day_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayResponse::CopyFrom(const MarketTradeDayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridgeapp.quote.v1.MarketTradeDayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayResponse::IsInitialized() const {
  return true;
}

void MarketTradeDayResponse::InternalSwap(MarketTradeDayResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_day_.InternalSwap(&other->trade_day_);
  half_trade_day_.InternalSwap(&other->half_trade_day_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayResponse::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[52]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace quote
}  // namespace longbridgeapp
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MultiSecurityRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MultiSecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MultiSecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityStaticInfoResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityStaticInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityStaticInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::StaticInfo* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::StaticInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::StaticInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityQuoteResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityQuote* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PrePostQuote* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PrePostQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PrePostQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionQuoteResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionQuote* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionExtend* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantQuoteResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantQuote* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantExtend* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityDepthResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityDepthResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityDepthResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Depth* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Depth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Depth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityBrokersResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityBrokersResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityBrokersResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Brokers* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Brokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Brokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::ParticipantBrokerIdsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::ParticipantInfo* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::ParticipantInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::ParticipantInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityTradeRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityTradeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityTradeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityTradeResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityTradeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityTradeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Trade* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Trade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Trade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityIntradayRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityIntradayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityIntradayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityIntradayResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityIntradayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityIntradayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Line* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Line >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Line >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCandlestickRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCandlestickRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCandlestickRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SecurityCandlestickResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SecurityCandlestickResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SecurityCandlestickResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::Candlestick* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::Candlestick >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::Candlestick >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateListResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::OptionChainDateStrikeInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::StrikePriceInfo* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::StrikePriceInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::StrikePriceInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::IssuerInfoResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::IssuerInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::IssuerInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::IssuerInfo* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::IssuerInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::IssuerInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantFilterListRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantFilterListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantFilterListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::FilterConfig* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::FilterConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::FilterConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::WarrantFilterListResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::WarrantFilterListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::WarrantFilterListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::FilterWarrant* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::FilterWarrant >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::FilterWarrant >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradePeriodResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradePeriodResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradePeriodResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradePeriod* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::TradePeriod* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::TradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::TradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscriptionRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscriptionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscriptionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscriptionResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscriptionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscriptionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubTypeList* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubTypeList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubTypeList >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::SubscribeRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::SubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::SubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::UnsubscribeRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::UnsubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::UnsubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::UnsubscribeResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::UnsubscribeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::UnsubscribeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushQuote* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushDepth* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushDepth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushDepth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushBrokers* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushBrokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushBrokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::PushTrade* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::PushTrade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::PushTrade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradeDayRequest* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradeDayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradeDayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridgeapp::quote::v1::MarketTradeDayResponse* Arena::CreateMaybeMessage< ::longbridgeapp::quote::v1::MarketTradeDayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridgeapp::quote::v1::MarketTradeDayResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
