|
|
|
|
|
|
|
|
|
|
|
#ifndef PROTOBUF_Session_2eproto__INCLUDED
|
|
|
#define PROTOBUF_Session_2eproto__INCLUDED
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#include <google/protobuf/stubs/common.h>
|
|
|
|
|
|
#if GOOGLE_PROTOBUF_VERSION < 3005000
|
|
|
#error This file was generated by a newer version of protoc which is
|
|
|
#error incompatible with your Protocol Buffer headers. Please update
|
|
|
#error your headers.
|
|
|
#endif
|
|
|
#if 3005001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
|
|
|
#error This file was generated by an older version of protoc which is
|
|
|
#error incompatible with your Protocol Buffer headers. Please
|
|
|
#error regenerate this file with a newer version of protoc.
|
|
|
#endif
|
|
|
|
|
|
#include <google/protobuf/io/coded_stream.h>
|
|
|
#include <google/protobuf/arena.h>
|
|
|
#include <google/protobuf/arenastring.h>
|
|
|
#include <google/protobuf/generated_message_table_driven.h>
|
|
|
#include <google/protobuf/generated_message_util.h>
|
|
|
#include <google/protobuf/metadata.h>
|
|
|
#include <google/protobuf/message.h>
|
|
|
#include <google/protobuf/repeated_field.h>
|
|
|
#include <google/protobuf/extension_set.h>
|
|
|
#include <google/protobuf/generated_enum_reflection.h>
|
|
|
#include <google/protobuf/unknown_field_set.h>
|
|
|
#include "Common.pb.h"
|
|
|
|
|
|
|
|
|
namespace protobuf_Session_2eproto {
|
|
|
|
|
|
struct TableStruct {
|
|
|
static const ::google::protobuf::internal::ParseTableField entries[];
|
|
|
static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
|
|
|
static const ::google::protobuf::internal::ParseTable schema[2];
|
|
|
static const ::google::protobuf::internal::FieldMetadata field_metadata[];
|
|
|
static const ::google::protobuf::internal::SerializationTable serialization_table[];
|
|
|
static const ::google::protobuf::uint32 offsets[];
|
|
|
};
|
|
|
void AddDescriptors();
|
|
|
void InitDefaultsCreateSessionInfoImpl();
|
|
|
void InitDefaultsCreateSessionInfo();
|
|
|
void InitDefaultsConnectionListImpl();
|
|
|
void InitDefaultsConnectionList();
|
|
|
inline void InitDefaults() {
|
|
|
InitDefaultsCreateSessionInfo();
|
|
|
InitDefaultsConnectionList();
|
|
|
}
|
|
|
}
|
|
|
namespace Kinova {
|
|
|
namespace Api {
|
|
|
namespace Session {
|
|
|
class ConnectionList;
|
|
|
class ConnectionListDefaultTypeInternal;
|
|
|
extern ConnectionListDefaultTypeInternal _ConnectionList_default_instance_;
|
|
|
class CreateSessionInfo;
|
|
|
class CreateSessionInfoDefaultTypeInternal;
|
|
|
extern CreateSessionInfoDefaultTypeInternal _CreateSessionInfo_default_instance_;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
namespace Kinova {
|
|
|
namespace Api {
|
|
|
namespace Session {
|
|
|
|
|
|
enum ServiceVersion {
|
|
|
RESERVED_0 = 0,
|
|
|
CURRENT_VERSION = 1,
|
|
|
ServiceVersion_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
|
|
|
ServiceVersion_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
|
|
|
};
|
|
|
bool ServiceVersion_IsValid(int value);
|
|
|
const ServiceVersion ServiceVersion_MIN = RESERVED_0;
|
|
|
const ServiceVersion ServiceVersion_MAX = CURRENT_VERSION;
|
|
|
const int ServiceVersion_ARRAYSIZE = ServiceVersion_MAX + 1;
|
|
|
|
|
|
const ::google::protobuf::EnumDescriptor* ServiceVersion_descriptor();
|
|
|
inline const ::std::string& ServiceVersion_Name(ServiceVersion value) {
|
|
|
return ::google::protobuf::internal::NameOfEnum(
|
|
|
ServiceVersion_descriptor(), value);
|
|
|
}
|
|
|
inline bool ServiceVersion_Parse(
|
|
|
const ::std::string& name, ServiceVersion* value) {
|
|
|
return ::google::protobuf::internal::ParseNamedEnum<ServiceVersion>(
|
|
|
ServiceVersion_descriptor(), name, value);
|
|
|
}
|
|
|
|
|
|
|
|
|
class CreateSessionInfo : public ::google::protobuf::Message {
|
|
|
public:
|
|
|
CreateSessionInfo();
|
|
|
virtual ~CreateSessionInfo();
|
|
|
|
|
|
CreateSessionInfo(const CreateSessionInfo& from);
|
|
|
|
|
|
inline CreateSessionInfo& operator=(const CreateSessionInfo& from) {
|
|
|
CopyFrom(from);
|
|
|
return *this;
|
|
|
}
|
|
|
#if LANG_CXX11
|
|
|
CreateSessionInfo(CreateSessionInfo&& from) noexcept
|
|
|
: CreateSessionInfo() {
|
|
|
*this = ::std::move(from);
|
|
|
}
|
|
|
|
|
|
inline CreateSessionInfo& operator=(CreateSessionInfo&& from) noexcept {
|
|
|
if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
|
|
|
if (this != &from) InternalSwap(&from);
|
|
|
} else {
|
|
|
CopyFrom(from);
|
|
|
}
|
|
|
return *this;
|
|
|
}
|
|
|
#endif
|
|
|
static const ::google::protobuf::Descriptor* descriptor();
|
|
|
static const CreateSessionInfo& default_instance();
|
|
|
|
|
|
static void InitAsDefaultInstance();
|
|
|
static inline const CreateSessionInfo* internal_default_instance() {
|
|
|
return reinterpret_cast<const CreateSessionInfo*>(
|
|
|
&_CreateSessionInfo_default_instance_);
|
|
|
}
|
|
|
static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
|
|
|
0;
|
|
|
|
|
|
void Swap(CreateSessionInfo* other);
|
|
|
friend void swap(CreateSessionInfo& a, CreateSessionInfo& b) {
|
|
|
a.Swap(&b);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline CreateSessionInfo* New() const PROTOBUF_FINAL { return New(NULL); }
|
|
|
|
|
|
CreateSessionInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
|
|
|
void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
|
|
|
void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
|
|
|
void CopyFrom(const CreateSessionInfo& from);
|
|
|
void MergeFrom(const CreateSessionInfo& from);
|
|
|
void Clear() PROTOBUF_FINAL;
|
|
|
bool IsInitialized() const PROTOBUF_FINAL;
|
|
|
|
|
|
size_t ByteSizeLong() const PROTOBUF_FINAL;
|
|
|
bool MergePartialFromCodedStream(
|
|
|
::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
|
|
|
void SerializeWithCachedSizes(
|
|
|
::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
|
|
|
::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
|
|
|
bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
|
|
|
int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
|
|
|
private:
|
|
|
void SharedCtor();
|
|
|
void SharedDtor();
|
|
|
void SetCachedSize(int size) const PROTOBUF_FINAL;
|
|
|
void InternalSwap(CreateSessionInfo* other);
|
|
|
private:
|
|
|
inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
|
|
|
return NULL;
|
|
|
}
|
|
|
inline void* MaybeArenaPtr() const {
|
|
|
return NULL;
|
|
|
}
|
|
|
public:
|
|
|
|
|
|
::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void clear_username();
|
|
|
static const int kUsernameFieldNumber = 1;
|
|
|
const ::std::string& username() const;
|
|
|
void set_username(const ::std::string& value);
|
|
|
#if LANG_CXX11
|
|
|
void set_username(::std::string&& value);
|
|
|
#endif
|
|
|
void set_username(const char* value);
|
|
|
void set_username(const char* value, size_t size);
|
|
|
::std::string* mutable_username();
|
|
|
::std::string* release_username();
|
|
|
void set_allocated_username(::std::string* username);
|
|
|
|
|
|
|
|
|
void clear_password();
|
|
|
static const int kPasswordFieldNumber = 3;
|
|
|
const ::std::string& password() const;
|
|
|
void set_password(const ::std::string& value);
|
|
|
#if LANG_CXX11
|
|
|
void set_password(::std::string&& value);
|
|
|
#endif
|
|
|
void set_password(const char* value);
|
|
|
void set_password(const char* value, size_t size);
|
|
|
::std::string* mutable_password();
|
|
|
::std::string* release_password();
|
|
|
void set_allocated_password(::std::string* password);
|
|
|
|
|
|
|
|
|
void clear_session_inactivity_timeout();
|
|
|
static const int kSessionInactivityTimeoutFieldNumber = 2;
|
|
|
::google::protobuf::uint32 session_inactivity_timeout() const;
|
|
|
void set_session_inactivity_timeout(::google::protobuf::uint32 value);
|
|
|
|
|
|
|
|
|
void clear_connection_inactivity_timeout();
|
|
|
static const int kConnectionInactivityTimeoutFieldNumber = 4;
|
|
|
::google::protobuf::uint32 connection_inactivity_timeout() const;
|
|
|
void set_connection_inactivity_timeout(::google::protobuf::uint32 value);
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
|
|
|
::google::protobuf::internal::ArenaStringPtr username_;
|
|
|
::google::protobuf::internal::ArenaStringPtr password_;
|
|
|
::google::protobuf::uint32 session_inactivity_timeout_;
|
|
|
::google::protobuf::uint32 connection_inactivity_timeout_;
|
|
|
mutable int _cached_size_;
|
|
|
friend struct ::protobuf_Session_2eproto::TableStruct;
|
|
|
friend void ::protobuf_Session_2eproto::InitDefaultsCreateSessionInfoImpl();
|
|
|
};
|
|
|
|
|
|
|
|
|
class ConnectionList : public ::google::protobuf::Message {
|
|
|
public:
|
|
|
ConnectionList();
|
|
|
virtual ~ConnectionList();
|
|
|
|
|
|
ConnectionList(const ConnectionList& from);
|
|
|
|
|
|
inline ConnectionList& operator=(const ConnectionList& from) {
|
|
|
CopyFrom(from);
|
|
|
return *this;
|
|
|
}
|
|
|
#if LANG_CXX11
|
|
|
ConnectionList(ConnectionList&& from) noexcept
|
|
|
: ConnectionList() {
|
|
|
*this = ::std::move(from);
|
|
|
}
|
|
|
|
|
|
inline ConnectionList& operator=(ConnectionList&& from) noexcept {
|
|
|
if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
|
|
|
if (this != &from) InternalSwap(&from);
|
|
|
} else {
|
|
|
CopyFrom(from);
|
|
|
}
|
|
|
return *this;
|
|
|
}
|
|
|
#endif
|
|
|
static const ::google::protobuf::Descriptor* descriptor();
|
|
|
static const ConnectionList& default_instance();
|
|
|
|
|
|
static void InitAsDefaultInstance();
|
|
|
static inline const ConnectionList* internal_default_instance() {
|
|
|
return reinterpret_cast<const ConnectionList*>(
|
|
|
&_ConnectionList_default_instance_);
|
|
|
}
|
|
|
static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
|
|
|
1;
|
|
|
|
|
|
void Swap(ConnectionList* other);
|
|
|
friend void swap(ConnectionList& a, ConnectionList& b) {
|
|
|
a.Swap(&b);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline ConnectionList* New() const PROTOBUF_FINAL { return New(NULL); }
|
|
|
|
|
|
ConnectionList* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
|
|
|
void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
|
|
|
void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
|
|
|
void CopyFrom(const ConnectionList& from);
|
|
|
void MergeFrom(const ConnectionList& from);
|
|
|
void Clear() PROTOBUF_FINAL;
|
|
|
bool IsInitialized() const PROTOBUF_FINAL;
|
|
|
|
|
|
size_t ByteSizeLong() const PROTOBUF_FINAL;
|
|
|
bool MergePartialFromCodedStream(
|
|
|
::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
|
|
|
void SerializeWithCachedSizes(
|
|
|
::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
|
|
|
::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
|
|
|
bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
|
|
|
int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
|
|
|
private:
|
|
|
void SharedCtor();
|
|
|
void SharedDtor();
|
|
|
void SetCachedSize(int size) const PROTOBUF_FINAL;
|
|
|
void InternalSwap(ConnectionList* other);
|
|
|
private:
|
|
|
inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
|
|
|
return NULL;
|
|
|
}
|
|
|
inline void* MaybeArenaPtr() const {
|
|
|
return NULL;
|
|
|
}
|
|
|
public:
|
|
|
|
|
|
::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int connection_size() const;
|
|
|
void clear_connection();
|
|
|
static const int kConnectionFieldNumber = 1;
|
|
|
const ::Kinova::Api::Common::Connection& connection(int index) const;
|
|
|
::Kinova::Api::Common::Connection* mutable_connection(int index);
|
|
|
::Kinova::Api::Common::Connection* add_connection();
|
|
|
::google::protobuf::RepeatedPtrField< ::Kinova::Api::Common::Connection >*
|
|
|
mutable_connection();
|
|
|
const ::google::protobuf::RepeatedPtrField< ::Kinova::Api::Common::Connection >&
|
|
|
connection() const;
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
|
|
|
::google::protobuf::RepeatedPtrField< ::Kinova::Api::Common::Connection > connection_;
|
|
|
mutable int _cached_size_;
|
|
|
friend struct ::protobuf_Session_2eproto::TableStruct;
|
|
|
friend void ::protobuf_Session_2eproto::InitDefaultsConnectionListImpl();
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __GNUC__
|
|
|
#pragma GCC diagnostic push
|
|
|
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
inline void CreateSessionInfo::clear_username() {
|
|
|
username_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline const ::std::string& CreateSessionInfo::username() const {
|
|
|
|
|
|
return username_.GetNoArena();
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_username(const ::std::string& value) {
|
|
|
|
|
|
username_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
|
|
|
|
|
|
}
|
|
|
#if LANG_CXX11
|
|
|
inline void CreateSessionInfo::set_username(::std::string&& value) {
|
|
|
|
|
|
username_.SetNoArena(
|
|
|
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
|
|
|
|
|
|
}
|
|
|
#endif
|
|
|
inline void CreateSessionInfo::set_username(const char* value) {
|
|
|
GOOGLE_DCHECK(value != NULL);
|
|
|
|
|
|
username_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
|
|
|
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_username(const char* value, size_t size) {
|
|
|
|
|
|
username_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
|
|
|
::std::string(reinterpret_cast<const char*>(value), size));
|
|
|
|
|
|
}
|
|
|
inline ::std::string* CreateSessionInfo::mutable_username() {
|
|
|
|
|
|
|
|
|
return username_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline ::std::string* CreateSessionInfo::release_username() {
|
|
|
|
|
|
|
|
|
return username_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_allocated_username(::std::string* username) {
|
|
|
if (username != NULL) {
|
|
|
|
|
|
} else {
|
|
|
|
|
|
}
|
|
|
username_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), username);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
inline void CreateSessionInfo::clear_session_inactivity_timeout() {
|
|
|
session_inactivity_timeout_ = 0u;
|
|
|
}
|
|
|
inline ::google::protobuf::uint32 CreateSessionInfo::session_inactivity_timeout() const {
|
|
|
|
|
|
return session_inactivity_timeout_;
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_session_inactivity_timeout(::google::protobuf::uint32 value) {
|
|
|
|
|
|
session_inactivity_timeout_ = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
inline void CreateSessionInfo::clear_password() {
|
|
|
password_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline const ::std::string& CreateSessionInfo::password() const {
|
|
|
|
|
|
return password_.GetNoArena();
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_password(const ::std::string& value) {
|
|
|
|
|
|
password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
|
|
|
|
|
|
}
|
|
|
#if LANG_CXX11
|
|
|
inline void CreateSessionInfo::set_password(::std::string&& value) {
|
|
|
|
|
|
password_.SetNoArena(
|
|
|
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
|
|
|
|
|
|
}
|
|
|
#endif
|
|
|
inline void CreateSessionInfo::set_password(const char* value) {
|
|
|
GOOGLE_DCHECK(value != NULL);
|
|
|
|
|
|
password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
|
|
|
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_password(const char* value, size_t size) {
|
|
|
|
|
|
password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
|
|
|
::std::string(reinterpret_cast<const char*>(value), size));
|
|
|
|
|
|
}
|
|
|
inline ::std::string* CreateSessionInfo::mutable_password() {
|
|
|
|
|
|
|
|
|
return password_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline ::std::string* CreateSessionInfo::release_password() {
|
|
|
|
|
|
|
|
|
return password_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_allocated_password(::std::string* password) {
|
|
|
if (password != NULL) {
|
|
|
|
|
|
} else {
|
|
|
|
|
|
}
|
|
|
password_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), password);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
inline void CreateSessionInfo::clear_connection_inactivity_timeout() {
|
|
|
connection_inactivity_timeout_ = 0u;
|
|
|
}
|
|
|
inline ::google::protobuf::uint32 CreateSessionInfo::connection_inactivity_timeout() const {
|
|
|
|
|
|
return connection_inactivity_timeout_;
|
|
|
}
|
|
|
inline void CreateSessionInfo::set_connection_inactivity_timeout(::google::protobuf::uint32 value) {
|
|
|
|
|
|
connection_inactivity_timeout_ = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline int ConnectionList::connection_size() const {
|
|
|
return connection_.size();
|
|
|
}
|
|
|
inline const ::Kinova::Api::Common::Connection& ConnectionList::connection(int index) const {
|
|
|
|
|
|
return connection_.Get(index);
|
|
|
}
|
|
|
inline ::Kinova::Api::Common::Connection* ConnectionList::mutable_connection(int index) {
|
|
|
|
|
|
return connection_.Mutable(index);
|
|
|
}
|
|
|
inline ::Kinova::Api::Common::Connection* ConnectionList::add_connection() {
|
|
|
|
|
|
return connection_.Add();
|
|
|
}
|
|
|
inline ::google::protobuf::RepeatedPtrField< ::Kinova::Api::Common::Connection >*
|
|
|
ConnectionList::mutable_connection() {
|
|
|
|
|
|
return &connection_;
|
|
|
}
|
|
|
inline const ::google::protobuf::RepeatedPtrField< ::Kinova::Api::Common::Connection >&
|
|
|
ConnectionList::connection() const {
|
|
|
|
|
|
return connection_;
|
|
|
}
|
|
|
|
|
|
#ifdef __GNUC__
|
|
|
#pragma GCC diagnostic pop
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
namespace google {
|
|
|
namespace protobuf {
|
|
|
|
|
|
template <> struct is_proto_enum< ::Kinova::Api::Session::ServiceVersion> : ::google::protobuf::internal::true_type {};
|
|
|
template <>
|
|
|
inline const EnumDescriptor* GetEnumDescriptor< ::Kinova::Api::Session::ServiceVersion>() {
|
|
|
return ::Kinova::Api::Session::ServiceVersion_descriptor();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|