mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-11-29 18:38:44 +08:00
milvus support multi index engine (#27178)
Co-authored-by: longjiquan <jiquan.long@zilliz.com>
This commit is contained in:
parent
67a471e09c
commit
370b6fde58
10
Makefile
10
Makefile
@ -45,6 +45,8 @@ GOFUMPT_VERSION := 0.5.0
|
||||
GOFUMPT_OUTPUT := $(shell $(INSTALL_PATH)/gofumpt --version 2>/dev/null)
|
||||
INSTALL_GOFUMPT := $(findstring $(GOFUMPT_VERSION),$(GOFUMPT_OUTPUT))
|
||||
|
||||
index_engine = knowhere
|
||||
|
||||
export GIT_BRANCH=master
|
||||
|
||||
ENABLE_AZURE = false
|
||||
@ -197,19 +199,19 @@ generated-proto: download-milvus-proto build-3rdparty
|
||||
|
||||
build-cpp: generated-proto
|
||||
@echo "Building Milvus cpp library ... ${AZURE_OPTION}"
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION})
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION} -x ${index_engine})
|
||||
|
||||
build-cpp-gpu: generated-proto
|
||||
@echo "Building Milvus cpp gpu library ... "
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -g -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION})
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -g -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION} -x ${index_engine})
|
||||
|
||||
build-cpp-with-unittest: generated-proto
|
||||
@echo "Building Milvus cpp library with unittest ... "
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -u -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION})
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -u -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION} -x ${index_engine})
|
||||
|
||||
build-cpp-with-coverage: generated-proto
|
||||
@echo "Building Milvus cpp library with coverage and unittest ..."
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -a ${useasan} -u -c -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION})
|
||||
@(env bash $(PWD)/scripts/core_build.sh -t ${mode} -a ${useasan} -u -c -f "$(CUSTOM_THIRDPARTY_PATH)" -n ${disk_index} -y ${use_dynamic_simd} ${AZURE_OPTION} -x ${index_engine})
|
||||
|
||||
check-proto-product: generated-proto
|
||||
@(env bash $(PWD)/scripts/check_proto_product.sh)
|
||||
|
@ -523,6 +523,8 @@ common:
|
||||
info: 500 # minimum milliseconds for printing durations in info level
|
||||
warn: 1000 # minimum milliseconds for printing durations in warn level
|
||||
|
||||
indexEngineVersion: "knowhere-v0"
|
||||
|
||||
# QuotaConfig, configurations of Milvus quota and limits.
|
||||
# By default, we enable:
|
||||
# 1. TT protection;
|
||||
|
@ -37,8 +37,9 @@ WITH_PROMETHEUS="ON"
|
||||
CUDA_ARCH="DEFAULT"
|
||||
CUSTOM_THIRDPARTY_PATH=""
|
||||
BUILD_DISK_ANN="OFF"
|
||||
INDEX_ENGINE="knowhere"
|
||||
|
||||
while getopts "p:t:s:f:o:ulrcghzme" arg; do
|
||||
while getopts "p:t:s:f:o:ulrcghzmex" arg; do
|
||||
case $arg in
|
||||
f)
|
||||
CUSTOM_THIRDPARTY_PATH=$OPTARG
|
||||
@ -82,6 +83,9 @@ while getopts "p:t:s:f:o:ulrcghzme" arg; do
|
||||
n)
|
||||
BUILD_DISK_ANN="OFF"
|
||||
;;
|
||||
x)
|
||||
INDEX_ENGINE=$OPTARG
|
||||
;;
|
||||
h) # help
|
||||
echo "
|
||||
parameter:
|
||||
@ -154,6 +158,7 @@ CMAKE_CMD="cmake \
|
||||
-DCUSTOM_THIRDPARTY_DOWNLOAD_PATH=${CUSTOM_THIRDPARTY_PATH} \
|
||||
-DKNOWHERE_GPU_VERSION=${SUPPORT_GPU} \
|
||||
-DBUILD_DISK_ANN=${BUILD_DISK_ANN} \
|
||||
-DINDEX_ENGINE=${INDEX_ENGINE} \
|
||||
${SCRIPTS_DIR}"
|
||||
echo ${CMAKE_CMD}
|
||||
${CMAKE_CMD}
|
||||
|
@ -166,46 +166,7 @@ PositivelyRelated(const knowhere::MetricType& metric_type) {
|
||||
|
||||
inline std::string
|
||||
KnowhereStatusString(knowhere::Status status) {
|
||||
switch (status) {
|
||||
case knowhere::Status::invalid_args:
|
||||
return "invalid args";
|
||||
case knowhere::Status::invalid_param_in_json:
|
||||
return "invalid param in json";
|
||||
case knowhere::Status::out_of_range_in_json:
|
||||
return "out of range in json";
|
||||
case knowhere::Status::type_conflict_in_json:
|
||||
return "type conflict in json";
|
||||
case knowhere::Status::invalid_metric_type:
|
||||
return "invalid metric type";
|
||||
case knowhere::Status::empty_index:
|
||||
return "empty index";
|
||||
case knowhere::Status::not_implemented:
|
||||
return "not implemented";
|
||||
case knowhere::Status::index_not_trained:
|
||||
return "index not trained";
|
||||
case knowhere::Status::index_already_trained:
|
||||
return "index already trained";
|
||||
case knowhere::Status::faiss_inner_error:
|
||||
return "faiss inner error";
|
||||
case knowhere::Status::hnsw_inner_error:
|
||||
return "hnsw inner error";
|
||||
case knowhere::Status::malloc_error:
|
||||
return "malloc error";
|
||||
case knowhere::Status::diskann_inner_error:
|
||||
return "diskann inner error";
|
||||
case knowhere::Status::diskann_file_error:
|
||||
return "diskann file error";
|
||||
case knowhere::Status::invalid_value_in_json:
|
||||
return "invalid value in json";
|
||||
case knowhere::Status::arithmetic_overflow:
|
||||
return "arithmetic overflow";
|
||||
case knowhere::Status::raft_inner_error:
|
||||
return "raft inner error";
|
||||
case knowhere::Status::invalid_binary_set:
|
||||
return "invalid binary set";
|
||||
default:
|
||||
return "unexpected status";
|
||||
}
|
||||
return knowhere::Status2String(status);
|
||||
}
|
||||
|
||||
inline std::vector<IndexType>
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "common/EasyAssert.h"
|
||||
#include "glog/logging.h"
|
||||
#include "log/Log.h"
|
||||
#include "knowhere/comp/thread_pool.h"
|
||||
#include "knowhere/comp/knowhere_config.h"
|
||||
|
||||
namespace milvus::config {
|
||||
@ -74,12 +73,12 @@ KnowhereSetSimdType(const char* value) {
|
||||
|
||||
void
|
||||
KnowhereInitBuildThreadPool(const uint32_t num_threads) {
|
||||
knowhere::ThreadPool::InitGlobalBuildThreadPool(num_threads);
|
||||
knowhere::KnowhereConfig::SetBuildThreadPoolSize(num_threads);
|
||||
}
|
||||
|
||||
void
|
||||
KnowhereInitSearchThreadPool(const uint32_t num_threads) {
|
||||
knowhere::ThreadPool::InitGlobalSearchThreadPool(num_threads);
|
||||
knowhere::KnowhereConfig::SetSearchThreadPoolSize(num_threads);
|
||||
if (!knowhere::KnowhereConfig::SetAioContextPool(num_threads)) {
|
||||
PanicInfo("Failed to set aio context pool with num_threads " +
|
||||
std::to_string(num_threads));
|
||||
|
@ -25,7 +25,8 @@ namespace milvus::index {
|
||||
using BoolIndexPtr = std::shared_ptr<ScalarIndexSort<bool>>;
|
||||
|
||||
inline BoolIndexPtr
|
||||
CreateBoolIndex(storage::FileManagerImplPtr file_manager = nullptr) {
|
||||
return std::make_unique<ScalarIndexSort<bool>>(file_manager);
|
||||
CreateBoolIndex(const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext()) {
|
||||
return std::make_unique<ScalarIndexSort<bool>>(file_manager_context);
|
||||
}
|
||||
} // namespace milvus::index
|
||||
|
@ -14,14 +14,8 @@ set(INDEX_FILES
|
||||
Utils.cpp
|
||||
VectorMemIndex.cpp
|
||||
IndexFactory.cpp
|
||||
)
|
||||
|
||||
if ( BUILD_DISK_ANN STREQUAL "ON" )
|
||||
set(INDEX_FILES
|
||||
${INDEX_FILES}
|
||||
VectorDiskIndex.cpp
|
||||
)
|
||||
endif ()
|
||||
|
||||
milvus_add_pkg_config("milvus_index")
|
||||
add_library(milvus_index SHARED ${INDEX_FILES})
|
||||
|
@ -23,9 +23,10 @@ namespace milvus::index {
|
||||
|
||||
template <typename T>
|
||||
inline ScalarIndexPtr<T>
|
||||
IndexFactory::CreateScalarIndex(const IndexType& index_type,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
return CreateScalarIndexSort<T>(file_manager);
|
||||
IndexFactory::CreateScalarIndex(
|
||||
const IndexType& index_type,
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
return CreateScalarIndexSort<T>(file_manager_context);
|
||||
}
|
||||
|
||||
// template <>
|
||||
@ -36,10 +37,11 @@ IndexFactory::CreateScalarIndex(const IndexType& index_type,
|
||||
|
||||
template <>
|
||||
inline ScalarIndexPtr<std::string>
|
||||
IndexFactory::CreateScalarIndex(const IndexType& index_type,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
IndexFactory::CreateScalarIndex(
|
||||
const IndexType& index_type,
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
return CreateStringIndexMarisa(file_manager);
|
||||
return CreateStringIndexMarisa(file_manager_context);
|
||||
#else
|
||||
throw std::runtime_error("unsupported platform");
|
||||
#endif
|
||||
|
@ -18,50 +18,52 @@
|
||||
#include "index/VectorMemIndex.h"
|
||||
#include "index/Utils.h"
|
||||
#include "index/Meta.h"
|
||||
#include "knowhere/utils.h"
|
||||
|
||||
#ifdef BUILD_DISK_ANN
|
||||
#include "index/VectorDiskIndex.h"
|
||||
#endif
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
IndexBasePtr
|
||||
IndexFactory::CreateIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
IndexFactory::CreateIndex(
|
||||
const CreateIndexInfo& create_index_info,
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
if (datatype_is_vector(create_index_info.field_type)) {
|
||||
return CreateVectorIndex(create_index_info, file_manager);
|
||||
return CreateVectorIndex(create_index_info, file_manager_context);
|
||||
}
|
||||
|
||||
return CreateScalarIndex(create_index_info, file_manager);
|
||||
return CreateScalarIndex(create_index_info, file_manager_context);
|
||||
}
|
||||
|
||||
IndexBasePtr
|
||||
IndexFactory::CreateScalarIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
IndexFactory::CreateScalarIndex(
|
||||
const CreateIndexInfo& create_index_info,
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
auto data_type = create_index_info.field_type;
|
||||
auto index_type = create_index_info.index_type;
|
||||
|
||||
switch (data_type) {
|
||||
// create scalar index
|
||||
case DataType::BOOL:
|
||||
return CreateScalarIndex<bool>(index_type, file_manager);
|
||||
return CreateScalarIndex<bool>(index_type, file_manager_context);
|
||||
case DataType::INT8:
|
||||
return CreateScalarIndex<int8_t>(index_type, file_manager);
|
||||
return CreateScalarIndex<int8_t>(index_type, file_manager_context);
|
||||
case DataType::INT16:
|
||||
return CreateScalarIndex<int16_t>(index_type, file_manager);
|
||||
return CreateScalarIndex<int16_t>(index_type, file_manager_context);
|
||||
case DataType::INT32:
|
||||
return CreateScalarIndex<int32_t>(index_type, file_manager);
|
||||
return CreateScalarIndex<int32_t>(index_type, file_manager_context);
|
||||
case DataType::INT64:
|
||||
return CreateScalarIndex<int64_t>(index_type, file_manager);
|
||||
return CreateScalarIndex<int64_t>(index_type, file_manager_context);
|
||||
case DataType::FLOAT:
|
||||
return CreateScalarIndex<float>(index_type, file_manager);
|
||||
return CreateScalarIndex<float>(index_type, file_manager_context);
|
||||
case DataType::DOUBLE:
|
||||
return CreateScalarIndex<double>(index_type, file_manager);
|
||||
return CreateScalarIndex<double>(index_type, file_manager_context);
|
||||
|
||||
// create string index
|
||||
case DataType::STRING:
|
||||
case DataType::VARCHAR:
|
||||
return CreateScalarIndex<std::string>(index_type, file_manager);
|
||||
return CreateScalarIndex<std::string>(index_type,
|
||||
file_manager_context);
|
||||
default:
|
||||
throw SegcoreError(
|
||||
DataTypeInvalid,
|
||||
@ -70,19 +72,19 @@ IndexFactory::CreateScalarIndex(const CreateIndexInfo& create_index_info,
|
||||
}
|
||||
|
||||
IndexBasePtr
|
||||
IndexFactory::CreateVectorIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
IndexFactory::CreateVectorIndex(
|
||||
const CreateIndexInfo& create_index_info,
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
auto index_type = create_index_info.index_type;
|
||||
auto metric_type = create_index_info.metric_type;
|
||||
|
||||
#ifdef BUILD_DISK_ANN
|
||||
auto version = create_index_info.index_engine_version;
|
||||
// create disk index
|
||||
auto data_type = create_index_info.field_type;
|
||||
if (is_in_disk_list(index_type)) {
|
||||
if (knowhere::UseDiskLoad(index_type, version)) {
|
||||
switch (data_type) {
|
||||
case DataType::VECTOR_FLOAT: {
|
||||
return std::make_unique<VectorDiskAnnIndex<float>>(
|
||||
index_type, metric_type, file_manager);
|
||||
index_type, metric_type, version, file_manager_context);
|
||||
}
|
||||
default:
|
||||
throw SegcoreError(
|
||||
@ -91,11 +93,10 @@ IndexFactory::CreateVectorIndex(const CreateIndexInfo& create_index_info,
|
||||
data_type));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// create mem index
|
||||
return std::make_unique<VectorMemIndex>(
|
||||
index_type, metric_type, file_manager);
|
||||
index_type, metric_type, version, file_manager_context);
|
||||
}
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -48,15 +48,16 @@ class IndexFactory {
|
||||
|
||||
IndexBasePtr
|
||||
CreateIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager);
|
||||
const storage::FileManagerContext& file_manager_context);
|
||||
|
||||
IndexBasePtr
|
||||
CreateVectorIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager);
|
||||
const storage::FileManagerContext& file_manager_context);
|
||||
|
||||
IndexBasePtr
|
||||
CreateScalarIndex(const CreateIndexInfo& create_index_info,
|
||||
storage::FileManagerImplPtr file_manager = nullptr);
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
|
||||
// IndexBasePtr
|
||||
// CreateIndex(DataType dtype, const IndexType& index_type);
|
||||
@ -64,7 +65,8 @@ class IndexFactory {
|
||||
template <typename T>
|
||||
ScalarIndexPtr<T>
|
||||
CreateScalarIndex(const IndexType& index_type,
|
||||
storage::FileManagerImplPtr file_manager = nullptr);
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
};
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -24,6 +24,7 @@ struct CreateIndexInfo {
|
||||
DataType field_type;
|
||||
IndexType index_type;
|
||||
MetricType metric_type;
|
||||
std::string index_engine_version;
|
||||
};
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -45,10 +45,13 @@ constexpr const char* FIELD_ID = "field_id";
|
||||
constexpr const char* INDEX_BUILD_ID = "index_build_id";
|
||||
constexpr const char* INDEX_ID = "index_id";
|
||||
constexpr const char* INDEX_VERSION = "index_version";
|
||||
constexpr const char* INDEX_ENGINE_VERSION = "index_engine_version";
|
||||
|
||||
// DiskAnn build params
|
||||
// VecIndex file metas
|
||||
constexpr const char* DISK_ANN_PREFIX_PATH = "index_prefix";
|
||||
constexpr const char* DISK_ANN_RAW_DATA_PATH = "data_path";
|
||||
|
||||
// DiskAnn build params
|
||||
constexpr const char* DISK_ANN_MAX_DEGREE = "max_degree";
|
||||
constexpr const char* DISK_ANN_SEARCH_LIST_SIZE = "search_list_size";
|
||||
constexpr const char* DISK_ANN_PQ_CODE_BUDGET = "pq_code_budget_gb";
|
||||
|
@ -30,11 +30,12 @@ namespace milvus::index {
|
||||
|
||||
template <typename T>
|
||||
inline ScalarIndexSort<T>::ScalarIndexSort(
|
||||
storage::FileManagerImplPtr file_manager)
|
||||
const storage::FileManagerContext& file_manager_context)
|
||||
: is_built_(false), data_() {
|
||||
if (file_manager != nullptr) {
|
||||
file_manager_ = std::dynamic_pointer_cast<storage::MemFileManagerImpl>(
|
||||
file_manager);
|
||||
if (file_manager_context.Valid()) {
|
||||
file_manager_ =
|
||||
std::make_shared<storage::MemFileManagerImpl>(file_manager_context);
|
||||
AssertInfo(file_manager_ != nullptr, "create file manager failed!");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,8 @@ template <typename T>
|
||||
class ScalarIndexSort : public ScalarIndex<T> {
|
||||
public:
|
||||
explicit ScalarIndexSort(
|
||||
storage::FileManagerImplPtr file_manager = nullptr);
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
|
||||
BinarySet
|
||||
Serialize(const Config& config) override;
|
||||
@ -113,7 +114,8 @@ using ScalarIndexSortPtr = std::unique_ptr<ScalarIndexSort<T>>;
|
||||
namespace milvus::index {
|
||||
template <typename T>
|
||||
inline ScalarIndexSortPtr<T>
|
||||
CreateScalarIndexSort(storage::FileManagerImplPtr file_manager = nullptr) {
|
||||
return std::make_unique<ScalarIndexSort<T>>(file_manager);
|
||||
CreateScalarIndexSort(const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext()) {
|
||||
return std::make_unique<ScalarIndexSort<T>>(file_manager_context);
|
||||
}
|
||||
} // namespace milvus::index
|
||||
|
@ -30,10 +30,11 @@
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
StringIndexMarisa::StringIndexMarisa(storage::FileManagerImplPtr file_manager) {
|
||||
if (file_manager != nullptr) {
|
||||
file_manager_ = std::dynamic_pointer_cast<storage::MemFileManagerImpl>(
|
||||
file_manager);
|
||||
StringIndexMarisa::StringIndexMarisa(
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
if (file_manager_context.Valid()) {
|
||||
file_manager_ =
|
||||
std::make_shared<storage::MemFileManagerImpl>(file_manager_context);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@ namespace milvus::index {
|
||||
class StringIndexMarisa : public StringIndex {
|
||||
public:
|
||||
explicit StringIndexMarisa(
|
||||
storage::FileManagerImplPtr file_manager = nullptr);
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
|
||||
int64_t
|
||||
Size() override;
|
||||
@ -107,8 +108,10 @@ class StringIndexMarisa : public StringIndex {
|
||||
using StringIndexMarisaPtr = std::unique_ptr<StringIndexMarisa>;
|
||||
|
||||
inline StringIndexPtr
|
||||
CreateStringIndexMarisa(storage::FileManagerImplPtr file_manager = nullptr) {
|
||||
return std::make_unique<StringIndexMarisa>(file_manager);
|
||||
CreateStringIndexMarisa(
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext()) {
|
||||
return std::make_unique<StringIndexMarisa>(file_manager_context);
|
||||
}
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -120,6 +120,13 @@ GetIndexTypeFromConfig(const Config& config) {
|
||||
return index_type.value();
|
||||
}
|
||||
|
||||
std::string
|
||||
GetIndexEngineVersionFromConfig(const Config& config) {
|
||||
auto index_engine_version =
|
||||
GetValueFromConfig<std::string>(config, INDEX_ENGINE_VERSION);
|
||||
return index_engine_version.has_value() ? index_engine_version.value() : "";
|
||||
}
|
||||
|
||||
// TODO :: too ugly
|
||||
storage::FieldDataMeta
|
||||
GetFieldDataMetaFromConfig(const Config& config) {
|
||||
|
@ -100,6 +100,9 @@ GetMetricTypeFromConfig(const Config& config);
|
||||
std::string
|
||||
GetIndexTypeFromConfig(const Config& config);
|
||||
|
||||
std::string
|
||||
GetIndexEngineVersionFromConfig(const Config& config);
|
||||
|
||||
storage::FieldDataMeta
|
||||
GetFieldDataMetaFromConfig(const Config& config);
|
||||
|
||||
|
@ -27,8 +27,6 @@
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
#ifdef BUILD_DISK_ANN
|
||||
|
||||
#define kSearchListMaxValue1 200 // used if tok <= 20
|
||||
#define kSearchListMaxValue2 65535 // used for topk > 20
|
||||
#define kPrepareDim 100
|
||||
@ -38,10 +36,12 @@ template <typename T>
|
||||
VectorDiskAnnIndex<T>::VectorDiskAnnIndex(
|
||||
const IndexType& index_type,
|
||||
const MetricType& metric_type,
|
||||
storage::FileManagerImplPtr file_manager)
|
||||
const std::string& version,
|
||||
const storage::FileManagerContext& file_manager_context)
|
||||
: VectorIndex(index_type, metric_type) {
|
||||
file_manager_ =
|
||||
std::dynamic_pointer_cast<storage::DiskFileManagerImpl>(file_manager);
|
||||
std::make_shared<storage::DiskFileManagerImpl>(file_manager_context);
|
||||
AssertInfo(file_manager_ != nullptr, "create file manager failed!");
|
||||
auto local_chunk_manager =
|
||||
storage::LocalChunkManagerSingleton::GetInstance().GetChunkManager();
|
||||
auto local_index_path_prefix = file_manager_->GetLocalIndexObjectPrefix();
|
||||
@ -52,12 +52,12 @@ VectorDiskAnnIndex<T>::VectorDiskAnnIndex(
|
||||
if (local_chunk_manager->Exist(local_index_path_prefix)) {
|
||||
local_chunk_manager->RemoveDir(local_index_path_prefix);
|
||||
}
|
||||
|
||||
CheckCompatible(version);
|
||||
local_chunk_manager->CreateDir(local_index_path_prefix);
|
||||
auto diskann_index_pack =
|
||||
knowhere::Pack(std::shared_ptr<knowhere::FileManager>(file_manager));
|
||||
index_ = knowhere::IndexFactory::Instance().Create(GetIndexType(),
|
||||
diskann_index_pack);
|
||||
knowhere::Pack(std::shared_ptr<knowhere::FileManager>(file_manager_));
|
||||
index_ = knowhere::IndexFactory::Instance().Create(
|
||||
GetIndexType(), version, diskann_index_pack);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -90,8 +90,9 @@ VectorDiskAnnIndex<T>::Load(const Config& config) {
|
||||
template <typename T>
|
||||
BinarySet
|
||||
VectorDiskAnnIndex<T>::Upload(const Config& config) {
|
||||
auto remote_paths_to_size = file_manager_->GetRemotePathsToFileSize();
|
||||
BinarySet ret;
|
||||
index_.Serialize(ret);
|
||||
auto remote_paths_to_size = file_manager_->GetRemotePathsToFileSize();
|
||||
for (auto& file : remote_paths_to_size) {
|
||||
ret.Append(file.first, nullptr, file.second);
|
||||
}
|
||||
@ -119,11 +120,15 @@ VectorDiskAnnIndex<T>::Build(const Config& config) {
|
||||
auto local_index_path_prefix = file_manager_->GetLocalIndexObjectPrefix();
|
||||
build_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix;
|
||||
|
||||
if (GetIndexType() == knowhere::IndexEnum::INDEX_DISKANN) {
|
||||
auto num_threads = GetValueFromConfig<std::string>(
|
||||
build_config, DISK_ANN_BUILD_THREAD_NUM);
|
||||
AssertInfo(num_threads.has_value(),
|
||||
AssertInfo(
|
||||
num_threads.has_value(),
|
||||
"param " + std::string(DISK_ANN_BUILD_THREAD_NUM) + "is empty");
|
||||
build_config[DISK_ANN_THREADS_NUM] = std::atoi(num_threads.value().c_str());
|
||||
build_config[DISK_ANN_THREADS_NUM] =
|
||||
std::atoi(num_threads.value().c_str());
|
||||
}
|
||||
knowhere::DataSet* ds_ptr = nullptr;
|
||||
build_config.erase("insert_files");
|
||||
index_.Build(*ds_ptr, build_config);
|
||||
@ -151,12 +156,15 @@ VectorDiskAnnIndex<T>::BuildWithDataset(const DatasetPtr& dataset,
|
||||
auto local_index_path_prefix = file_manager_->GetLocalIndexObjectPrefix();
|
||||
build_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix;
|
||||
|
||||
if (GetIndexType() == knowhere::IndexEnum::INDEX_DISKANN) {
|
||||
auto num_threads = GetValueFromConfig<std::string>(
|
||||
build_config, DISK_ANN_BUILD_THREAD_NUM);
|
||||
AssertInfo(num_threads.has_value(),
|
||||
AssertInfo(
|
||||
num_threads.has_value(),
|
||||
"param " + std::string(DISK_ANN_BUILD_THREAD_NUM) + "is empty");
|
||||
build_config[DISK_ANN_THREADS_NUM] = std::atoi(num_threads.value().c_str());
|
||||
|
||||
build_config[DISK_ANN_THREADS_NUM] =
|
||||
std::atoi(num_threads.value().c_str());
|
||||
}
|
||||
if (!local_chunk_manager->Exist(local_data_path)) {
|
||||
local_chunk_manager->CreateFile(local_data_path);
|
||||
}
|
||||
@ -204,20 +212,21 @@ VectorDiskAnnIndex<T>::Query(const DatasetPtr dataset,
|
||||
// set search list size
|
||||
auto search_list_size = GetValueFromConfig<uint32_t>(
|
||||
search_info.search_params_, DISK_ANN_QUERY_LIST);
|
||||
|
||||
if (GetIndexType() == knowhere::IndexEnum::INDEX_DISKANN) {
|
||||
if (search_list_size.has_value()) {
|
||||
search_config[DISK_ANN_SEARCH_LIST_SIZE] = search_list_size.value();
|
||||
}
|
||||
|
||||
// set beamwidth
|
||||
search_config[DISK_ANN_QUERY_BEAMWIDTH] = int(search_beamwidth_);
|
||||
// set json reset field, will be removed later
|
||||
search_config[DISK_ANN_PQ_CODE_BUDGET] = 0.0;
|
||||
}
|
||||
|
||||
// set index prefix, will be removed later
|
||||
auto local_index_path_prefix = file_manager_->GetLocalIndexObjectPrefix();
|
||||
search_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix;
|
||||
|
||||
// set json reset field, will be removed later
|
||||
search_config[DISK_ANN_PQ_CODE_BUDGET] = 0.0;
|
||||
|
||||
auto final = [&] {
|
||||
auto radius =
|
||||
GetValueFromConfig<float>(search_info.search_params_, RADIUS);
|
||||
@ -330,29 +339,31 @@ VectorDiskAnnIndex<T>::update_load_json(const Config& config) {
|
||||
auto local_index_path_prefix = file_manager_->GetLocalIndexObjectPrefix();
|
||||
load_config[DISK_ANN_PREFIX_PATH] = local_index_path_prefix;
|
||||
|
||||
if (GetIndexType() == knowhere::IndexEnum::INDEX_DISKANN) {
|
||||
// set base info
|
||||
load_config[DISK_ANN_PREPARE_WARM_UP] = false;
|
||||
load_config[DISK_ANN_PREPARE_USE_BFS_CACHE] = false;
|
||||
|
||||
// set threads number
|
||||
auto num_threads =
|
||||
GetValueFromConfig<std::string>(load_config, DISK_ANN_LOAD_THREAD_NUM);
|
||||
AssertInfo(num_threads.has_value(),
|
||||
auto num_threads = GetValueFromConfig<std::string>(
|
||||
load_config, DISK_ANN_LOAD_THREAD_NUM);
|
||||
AssertInfo(
|
||||
num_threads.has_value(),
|
||||
"param " + std::string(DISK_ANN_LOAD_THREAD_NUM) + "is empty");
|
||||
load_config[DISK_ANN_THREADS_NUM] = std::atoi(num_threads.value().c_str());
|
||||
load_config[DISK_ANN_THREADS_NUM] =
|
||||
std::atoi(num_threads.value().c_str());
|
||||
|
||||
// update search_beamwidth
|
||||
auto beamwidth =
|
||||
GetValueFromConfig<std::string>(load_config, DISK_ANN_QUERY_BEAMWIDTH);
|
||||
auto beamwidth = GetValueFromConfig<std::string>(
|
||||
load_config, DISK_ANN_QUERY_BEAMWIDTH);
|
||||
if (beamwidth.has_value()) {
|
||||
search_beamwidth_ = std::atoi(beamwidth.value().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
return load_config;
|
||||
}
|
||||
|
||||
template class VectorDiskAnnIndex<float>;
|
||||
|
||||
#endif
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -24,18 +24,19 @@
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
#ifdef BUILD_DISK_ANN
|
||||
|
||||
template <typename T>
|
||||
class VectorDiskAnnIndex : public VectorIndex {
|
||||
public:
|
||||
explicit VectorDiskAnnIndex(const IndexType& index_type,
|
||||
explicit VectorDiskAnnIndex(
|
||||
const IndexType& index_type,
|
||||
const MetricType& metric_type,
|
||||
storage::FileManagerImplPtr file_manager);
|
||||
const std::string& version,
|
||||
const storage::FileManagerContext& file_manager_context);
|
||||
BinarySet
|
||||
Serialize(const Config& config) override { // deprecated
|
||||
auto remote_paths_to_size = file_manager_->GetRemotePathsToFileSize();
|
||||
BinarySet binary_set;
|
||||
index_.Serialize(binary_set);
|
||||
auto remote_paths_to_size = file_manager_->GetRemotePathsToFileSize();
|
||||
for (auto& file : remote_paths_to_size) {
|
||||
binary_set.Append(file.first, nullptr, file.second);
|
||||
}
|
||||
@ -91,6 +92,5 @@ class VectorDiskAnnIndex : public VectorIndex {
|
||||
|
||||
template <typename T>
|
||||
using VectorDiskAnnIndexPtr = std::unique_ptr<VectorDiskAnnIndex<T>>;
|
||||
#endif
|
||||
|
||||
} // namespace milvus::index
|
||||
|
@ -22,12 +22,14 @@
|
||||
#include <vector>
|
||||
#include <boost/dynamic_bitset.hpp>
|
||||
|
||||
#include "Utils.h"
|
||||
#include "knowhere/factory.h"
|
||||
#include "index/Index.h"
|
||||
#include "common/Types.h"
|
||||
#include "common/BitsetView.h"
|
||||
#include "common/QueryResult.h"
|
||||
#include "common/QueryInfo.h"
|
||||
#include "knowhere/version.h"
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
@ -88,6 +90,17 @@ class VectorIndex : public IndexBase {
|
||||
CleanLocalData() {
|
||||
}
|
||||
|
||||
void
|
||||
CheckCompatible(const std::string& version) {
|
||||
std::string err_msg =
|
||||
"version not support : " + version +
|
||||
" , knowhere current version " +
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
AssertInfo(
|
||||
knowhere::Version::VersionSupport(knowhere::Version(version)),
|
||||
err_msg);
|
||||
}
|
||||
|
||||
private:
|
||||
MetricType metric_type_;
|
||||
int64_t dim_;
|
||||
|
@ -48,17 +48,21 @@
|
||||
|
||||
namespace milvus::index {
|
||||
|
||||
VectorMemIndex::VectorMemIndex(const IndexType& index_type,
|
||||
VectorMemIndex::VectorMemIndex(
|
||||
const IndexType& index_type,
|
||||
const MetricType& metric_type,
|
||||
storage::FileManagerImplPtr file_manager)
|
||||
const std::string& version,
|
||||
const storage::FileManagerContext& file_manager_context)
|
||||
: VectorIndex(index_type, metric_type) {
|
||||
AssertInfo(!is_unsupported(index_type, metric_type),
|
||||
index_type + " doesn't support metric: " + metric_type);
|
||||
if (file_manager != nullptr) {
|
||||
file_manager_ = std::dynamic_pointer_cast<storage::MemFileManagerImpl>(
|
||||
file_manager);
|
||||
if (file_manager_context.Valid()) {
|
||||
file_manager_ =
|
||||
std::make_shared<storage::MemFileManagerImpl>(file_manager_context);
|
||||
AssertInfo(file_manager_ != nullptr, "create file manager failed!");
|
||||
}
|
||||
index_ = knowhere::IndexFactory::Instance().Create(GetIndexType());
|
||||
CheckCompatible(version);
|
||||
index_ = knowhere::IndexFactory::Instance().Create(GetIndexType(), version);
|
||||
}
|
||||
|
||||
BinarySet
|
||||
@ -91,7 +95,7 @@ VectorMemIndex::Serialize(const Config& config) {
|
||||
void
|
||||
VectorMemIndex::LoadWithoutAssemble(const BinarySet& binary_set,
|
||||
const Config& config) {
|
||||
auto stat = index_.Deserialize(binary_set);
|
||||
auto stat = index_.Deserialize(binary_set, config);
|
||||
if (stat != knowhere::Status::success)
|
||||
PanicCodeInfo(
|
||||
ErrorCode::UnexpectedError,
|
||||
|
@ -29,9 +29,12 @@ namespace milvus::index {
|
||||
|
||||
class VectorMemIndex : public VectorIndex {
|
||||
public:
|
||||
explicit VectorMemIndex(const IndexType& index_type,
|
||||
explicit VectorMemIndex(
|
||||
const IndexType& index_type,
|
||||
const MetricType& metric_type,
|
||||
storage::FileManagerImplPtr file_manager = nullptr);
|
||||
const std::string& version,
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
|
||||
BinarySet
|
||||
Serialize(const Config& config) override;
|
||||
|
@ -45,7 +45,7 @@ class IndexFactory {
|
||||
IndexCreatorBasePtr
|
||||
CreateIndex(DataType type,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
const storage::FileManagerContext& context) {
|
||||
auto invalid_dtype_msg =
|
||||
std::string("invalid data type: ") + std::to_string(int(type));
|
||||
|
||||
@ -59,12 +59,11 @@ class IndexFactory {
|
||||
case DataType::DOUBLE:
|
||||
case DataType::VARCHAR:
|
||||
case DataType::STRING:
|
||||
return CreateScalarIndex(type, config, file_manager);
|
||||
return CreateScalarIndex(type, config, context);
|
||||
|
||||
case DataType::VECTOR_FLOAT:
|
||||
case DataType::VECTOR_BINARY:
|
||||
return std::make_unique<VecIndexCreator>(
|
||||
type, config, file_manager);
|
||||
return std::make_unique<VecIndexCreator>(type, config, context);
|
||||
default:
|
||||
throw SegcoreError(
|
||||
DataTypeInvalid,
|
||||
|
@ -20,15 +20,16 @@
|
||||
|
||||
namespace milvus::indexbuilder {
|
||||
|
||||
ScalarIndexCreator::ScalarIndexCreator(DataType dtype,
|
||||
ScalarIndexCreator::ScalarIndexCreator(
|
||||
DataType dtype,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager)
|
||||
const storage::FileManagerContext& file_manager_context)
|
||||
: dtype_(dtype), config_(config) {
|
||||
milvus::index::CreateIndexInfo index_info;
|
||||
index_info.field_type = dtype_;
|
||||
index_info.index_type = index_type();
|
||||
index_ = index::IndexFactory::GetInstance().CreateIndex(index_info,
|
||||
file_manager);
|
||||
index_ = index::IndexFactory::GetInstance().CreateIndex(
|
||||
index_info, file_manager_context);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -24,7 +24,7 @@ class ScalarIndexCreator : public IndexCreatorBase {
|
||||
public:
|
||||
ScalarIndexCreator(DataType data_type,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager);
|
||||
const storage::FileManagerContext& file_manager_context);
|
||||
|
||||
void
|
||||
Build(const milvus::DatasetPtr& dataset) override;
|
||||
@ -56,8 +56,9 @@ using ScalarIndexCreatorPtr = std::unique_ptr<ScalarIndexCreator>;
|
||||
inline ScalarIndexCreatorPtr
|
||||
CreateScalarIndex(DataType dtype,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager) {
|
||||
return std::make_unique<ScalarIndexCreator>(dtype, config, file_manager);
|
||||
const storage::FileManagerContext& file_manager_context) {
|
||||
return std::make_unique<ScalarIndexCreator>(
|
||||
dtype, config, file_manager_context);
|
||||
}
|
||||
|
||||
} // namespace milvus::indexbuilder
|
||||
|
@ -19,17 +19,20 @@
|
||||
|
||||
namespace milvus::indexbuilder {
|
||||
|
||||
VecIndexCreator::VecIndexCreator(DataType data_type,
|
||||
VecIndexCreator::VecIndexCreator(
|
||||
DataType data_type,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager)
|
||||
const storage::FileManagerContext& file_manager_context)
|
||||
: data_type_(data_type), config_(config) {
|
||||
index::CreateIndexInfo index_info;
|
||||
index_info.field_type = data_type_;
|
||||
index_info.index_type = index::GetIndexTypeFromConfig(config_);
|
||||
index_info.metric_type = index::GetMetricTypeFromConfig(config_);
|
||||
index_info.index_engine_version =
|
||||
index::GetIndexEngineVersionFromConfig(config_);
|
||||
|
||||
index_ = index::IndexFactory::GetInstance().CreateIndex(index_info,
|
||||
file_manager);
|
||||
index_ = index::IndexFactory::GetInstance().CreateIndex(
|
||||
index_info, file_manager_context);
|
||||
AssertInfo(index_ != nullptr,
|
||||
"[VecIndexCreator]Index is null after create index");
|
||||
}
|
||||
|
@ -26,9 +26,11 @@ namespace milvus::indexbuilder {
|
||||
// TODO: better to distinguish binary vec & float vec.
|
||||
class VecIndexCreator : public IndexCreatorBase {
|
||||
public:
|
||||
explicit VecIndexCreator(DataType data_type,
|
||||
explicit VecIndexCreator(
|
||||
DataType data_type,
|
||||
Config& config,
|
||||
storage::FileManagerImplPtr file_manager);
|
||||
const storage::FileManagerContext& file_manager_context =
|
||||
storage::FileManagerContext());
|
||||
|
||||
void
|
||||
Build(const milvus::DatasetPtr& dataset) override;
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "index/Utils.h"
|
||||
#include "pb/index_cgo_msg.pb.h"
|
||||
#include "storage/Util.h"
|
||||
#include "index/Meta.h"
|
||||
|
||||
using namespace milvus;
|
||||
CStatus
|
||||
@ -52,9 +53,14 @@ CreateIndex(enum CDataType dtype,
|
||||
config[param.key()] = param.value();
|
||||
}
|
||||
|
||||
config[milvus::index::INDEX_ENGINE_VERSION] =
|
||||
knowhere::Version::GetDefaultVersion().VersionCode();
|
||||
|
||||
auto& index_factory = milvus::indexbuilder::IndexFactory::GetInstance();
|
||||
auto index =
|
||||
index_factory.CreateIndex(milvus::DataType(dtype), config, nullptr);
|
||||
index_factory.CreateIndex(milvus::DataType(dtype),
|
||||
config,
|
||||
milvus::storage::FileManagerContext());
|
||||
|
||||
*res_index = index.release();
|
||||
status.error_code = Success;
|
||||
@ -84,6 +90,14 @@ CreateIndexV2(CIndex* res_index, CBuildIndexInfo c_build_index_info) {
|
||||
AssertInfo(index_type.has_value(), "index type is empty");
|
||||
index_info.index_type = index_type.value();
|
||||
|
||||
auto engine_version =
|
||||
build_index_info->index_engine_version.empty()
|
||||
? knowhere::Version::GetDefaultVersion().VersionCode()
|
||||
: build_index_info->index_engine_version;
|
||||
|
||||
index_info.index_engine_version = engine_version;
|
||||
config[milvus::index::INDEX_ENGINE_VERSION] = engine_version;
|
||||
|
||||
// get metric type
|
||||
if (milvus::datatype_is_vector(field_type)) {
|
||||
auto metric_type = milvus::index::GetValueFromConfig<std::string>(
|
||||
@ -104,13 +118,13 @@ CreateIndexV2(CIndex* res_index, CBuildIndexInfo c_build_index_info) {
|
||||
build_index_info->index_version};
|
||||
auto chunk_manager = milvus::storage::CreateChunkManager(
|
||||
build_index_info->storage_config);
|
||||
auto file_manager = milvus::storage::CreateFileManager(
|
||||
index_info.index_type, field_meta, index_meta, chunk_manager);
|
||||
AssertInfo(file_manager != nullptr, "create file manager failed!");
|
||||
|
||||
milvus::storage::FileManagerContext fileManagerContext(
|
||||
field_meta, index_meta, chunk_manager);
|
||||
|
||||
auto index =
|
||||
milvus::indexbuilder::IndexFactory::GetInstance().CreateIndex(
|
||||
build_index_info->field_type, config, file_manager);
|
||||
build_index_info->field_type, config, fileManagerContext);
|
||||
index->Build();
|
||||
*res_index = index.release();
|
||||
auto status = CStatus();
|
||||
@ -439,10 +453,24 @@ AppendInsertFilePath(CBuildIndexInfo c_build_index_info,
|
||||
status.error_msg = "";
|
||||
return status;
|
||||
} catch (std::exception& e) {
|
||||
return milvus::FailureCStatus(&e);
|
||||
}
|
||||
}
|
||||
|
||||
CStatus
|
||||
AppendIndexEngineVersionToBuildInfo(CBuildIndexInfo c_load_index_info,
|
||||
const char* c_index_engine_version) {
|
||||
try {
|
||||
auto build_index_info = (BuildIndexInfo*)c_load_index_info;
|
||||
std::string index_engine_version(c_index_engine_version);
|
||||
build_index_info->index_engine_version = index_engine_version;
|
||||
|
||||
auto status = CStatus();
|
||||
status.error_code = UnexpectedError;
|
||||
status.error_msg = strdup(e.what());
|
||||
status.error_code = Success;
|
||||
status.error_msg = "";
|
||||
return status;
|
||||
} catch (std::exception& e) {
|
||||
return milvus::FailureCStatus(&e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,6 +86,10 @@ AppendIndexMetaInfo(CBuildIndexInfo c_build_index_info,
|
||||
CStatus
|
||||
AppendInsertFilePath(CBuildIndexInfo c_build_index_info, const char* file_path);
|
||||
|
||||
CStatus
|
||||
AppendIndexEngineVersionToBuildInfo(CBuildIndexInfo c_load_index_info,
|
||||
const char* c_index_engine_version);
|
||||
|
||||
CStatus
|
||||
CreateIndexV2(CIndex* res_index, CBuildIndexInfo c_build_index_info);
|
||||
|
||||
|
@ -33,4 +33,5 @@ struct BuildIndexInfo {
|
||||
std::vector<std::string> insert_files;
|
||||
milvus::storage::StorageConfig storage_config;
|
||||
milvus::Config config;
|
||||
std::string index_engine_version;
|
||||
};
|
@ -33,8 +33,10 @@ VectorFieldIndexing::VectorFieldIndexing(const FieldMeta& field_meta,
|
||||
sync_with_index(false),
|
||||
config_(std::make_unique<VecIndexConfig>(
|
||||
segment_max_row_count, field_index_meta, segcore_config)) {
|
||||
index_ = std::make_unique<index::VectorMemIndex>(config_->GetIndexType(),
|
||||
config_->GetMetricType());
|
||||
index_ = std::make_unique<index::VectorMemIndex>(
|
||||
config_->GetIndexType(),
|
||||
config_->GetMetricType(),
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
}
|
||||
|
||||
void
|
||||
@ -54,7 +56,9 @@ VectorFieldIndexing::BuildIndexRange(int64_t ack_beg,
|
||||
for (int chunk_id = ack_beg; chunk_id < ack_end; chunk_id++) {
|
||||
const auto& chunk = source->get_chunk(chunk_id);
|
||||
auto indexing = std::make_unique<index::VectorMemIndex>(
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFFLAT, knowhere::metric::L2);
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFFLAT,
|
||||
knowhere::metric::L2,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
auto dataset = knowhere::GenDataSet(
|
||||
source->get_size_per_chunk(), dim, chunk.data());
|
||||
indexing->BuildWithDataset(dataset, conf);
|
||||
|
@ -42,6 +42,7 @@ struct LoadIndexInfo {
|
||||
std::map<std::string, std::string> index_params;
|
||||
std::vector<std::string> index_files;
|
||||
index::IndexBasePtr index;
|
||||
std::string index_engine_version;
|
||||
};
|
||||
|
||||
} // namespace milvus::segcore
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "index/Meta.h"
|
||||
#include "index/Utils.h"
|
||||
#include "log/Log.h"
|
||||
#include "storage/FileManager.h"
|
||||
#include "segcore/Types.h"
|
||||
#include "storage/Util.h"
|
||||
#include "storage/RemoteChunkManagerSingleton.h"
|
||||
@ -111,6 +112,7 @@ appendVecIndex(CLoadIndexInfo c_load_index_info, CBinarySet c_binary_set) {
|
||||
|
||||
milvus::index::CreateIndexInfo index_info;
|
||||
index_info.field_type = load_index_info->field_type;
|
||||
index_info.index_engine_version = load_index_info->index_engine_version;
|
||||
|
||||
// get index type
|
||||
AssertInfo(index_params.find("index_type") != index_params.end(),
|
||||
@ -135,20 +137,16 @@ appendVecIndex(CLoadIndexInfo c_load_index_info, CBinarySet c_binary_set) {
|
||||
auto remote_chunk_manager =
|
||||
milvus::storage::RemoteChunkManagerSingleton::GetInstance()
|
||||
.GetRemoteChunkManager();
|
||||
auto file_manager =
|
||||
milvus::storage::CreateFileManager(index_info.index_type,
|
||||
field_meta,
|
||||
index_meta,
|
||||
remote_chunk_manager);
|
||||
AssertInfo(file_manager != nullptr, "create file manager failed!");
|
||||
|
||||
auto config = milvus::index::ParseConfigFromIndexParams(
|
||||
load_index_info->index_params);
|
||||
config["index_files"] = load_index_info->index_files;
|
||||
|
||||
milvus::storage::FileManagerContext fileManagerContext(
|
||||
field_meta, index_meta, remote_chunk_manager);
|
||||
load_index_info->index =
|
||||
milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
index_info, file_manager);
|
||||
index_info, fileManagerContext);
|
||||
load_index_info->index->Load(*binary_set, config);
|
||||
auto status = CStatus();
|
||||
status.error_code = milvus::Success;
|
||||
@ -180,8 +178,8 @@ appendScalarIndex(CLoadIndexInfo c_load_index_info, CBinarySet c_binary_set) {
|
||||
index_info.index_type = index_params["index_type"];
|
||||
|
||||
load_index_info->index =
|
||||
milvus::index::IndexFactory::GetInstance().CreateIndex(index_info,
|
||||
nullptr);
|
||||
milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
index_info, milvus::storage::FileManagerContext());
|
||||
load_index_info->index->Load(*binary_set);
|
||||
auto status = CStatus();
|
||||
status.error_code = milvus::Success;
|
||||
@ -213,8 +211,14 @@ AppendIndexV2(CLoadIndexInfo c_load_index_info) {
|
||||
auto& index_params = load_index_info->index_params;
|
||||
auto field_type = load_index_info->field_type;
|
||||
|
||||
auto engine_version =
|
||||
load_index_info->index_engine_version.empty()
|
||||
? knowhere::Version::GetDefaultVersion().VersionCode()
|
||||
: load_index_info->index_engine_version;
|
||||
|
||||
milvus::index::CreateIndexInfo index_info;
|
||||
index_info.field_type = load_index_info->field_type;
|
||||
index_info.index_engine_version = engine_version;
|
||||
|
||||
// get index type
|
||||
AssertInfo(index_params.find("index_type") != index_params.end(),
|
||||
@ -241,20 +245,16 @@ AppendIndexV2(CLoadIndexInfo c_load_index_info) {
|
||||
auto remote_chunk_manager =
|
||||
milvus::storage::RemoteChunkManagerSingleton::GetInstance()
|
||||
.GetRemoteChunkManager();
|
||||
auto file_manager =
|
||||
milvus::storage::CreateFileManager(index_info.index_type,
|
||||
field_meta,
|
||||
index_meta,
|
||||
remote_chunk_manager);
|
||||
AssertInfo(file_manager != nullptr, "create file manager failed!");
|
||||
|
||||
auto config = milvus::index::ParseConfigFromIndexParams(
|
||||
load_index_info->index_params);
|
||||
config["index_files"] = load_index_info->index_files;
|
||||
|
||||
milvus::storage::FileManagerContext fileManagerContext(
|
||||
field_meta, index_meta, remote_chunk_manager);
|
||||
load_index_info->index =
|
||||
milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
index_info, file_manager);
|
||||
index_info, fileManagerContext);
|
||||
|
||||
if (!load_index_info->mmap_dir_path.empty() &&
|
||||
load_index_info->index->IsMmapSupported()) {
|
||||
@ -324,6 +324,27 @@ AppendIndexInfo(CLoadIndexInfo c_load_index_info,
|
||||
}
|
||||
}
|
||||
|
||||
CStatus
|
||||
AppendIndexEngineVersionToLoadInfo(CLoadIndexInfo c_load_index_info,
|
||||
const char* c_index_engine_version) {
|
||||
try {
|
||||
auto load_index_info =
|
||||
(milvus::segcore::LoadIndexInfo*)c_load_index_info;
|
||||
std::string index_engine_version(c_index_engine_version);
|
||||
load_index_info->index_engine_version = index_engine_version;
|
||||
|
||||
auto status = CStatus();
|
||||
status.error_code = milvus::Success;
|
||||
status.error_msg = "";
|
||||
return status;
|
||||
} catch (std::exception& e) {
|
||||
auto status = CStatus();
|
||||
status.error_code = milvus::UnexpectedError;
|
||||
status.error_msg = strdup(e.what());
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
||||
CStatus
|
||||
CleanLoadedIndex(CLoadIndexInfo c_load_index_info) {
|
||||
try {
|
||||
|
@ -58,6 +58,10 @@ AppendIndexFilePath(CLoadIndexInfo c_load_index_info, const char* file_path);
|
||||
CStatus
|
||||
AppendIndexV2(CLoadIndexInfo c_load_index_info);
|
||||
|
||||
CStatus
|
||||
AppendIndexEngineVersionToLoadInfo(CLoadIndexInfo c_load_index_info,
|
||||
const char* c_index_engine_version);
|
||||
|
||||
CStatus
|
||||
CleanLoadedIndex(CLoadIndexInfo c_load_index_info);
|
||||
|
||||
|
@ -31,11 +31,11 @@
|
||||
|
||||
namespace milvus::storage {
|
||||
|
||||
DiskFileManagerImpl::DiskFileManagerImpl(const FieldDataMeta& field_mata,
|
||||
IndexMeta index_meta,
|
||||
ChunkManagerPtr remote_chunk_manager)
|
||||
: FileManagerImpl(field_mata, index_meta) {
|
||||
rcm_ = remote_chunk_manager;
|
||||
DiskFileManagerImpl::DiskFileManagerImpl(
|
||||
const FileManagerContext& fileManagerContext)
|
||||
: FileManagerImpl(fileManagerContext.fieldDataMeta,
|
||||
fileManagerContext.indexMeta) {
|
||||
rcm_ = fileManagerContext.chunkManagerPtr;
|
||||
}
|
||||
|
||||
DiskFileManagerImpl::~DiskFileManagerImpl() {
|
||||
|
@ -32,9 +32,7 @@ namespace milvus::storage {
|
||||
|
||||
class DiskFileManagerImpl : public FileManagerImpl {
|
||||
public:
|
||||
explicit DiskFileManagerImpl(const FieldDataMeta& field_mata,
|
||||
IndexMeta index_meta,
|
||||
ChunkManagerPtr remote_chunk_manager);
|
||||
explicit DiskFileManagerImpl(const FileManagerContext& fileManagerContext);
|
||||
|
||||
virtual ~DiskFileManagerImpl();
|
||||
|
||||
|
@ -28,6 +28,26 @@
|
||||
|
||||
namespace milvus::storage {
|
||||
|
||||
struct FileManagerContext {
|
||||
FileManagerContext() : chunkManagerPtr(nullptr) {
|
||||
}
|
||||
FileManagerContext(const FieldDataMeta& fieldDataMeta,
|
||||
const IndexMeta& indexMeta,
|
||||
const ChunkManagerPtr& chunkManagerPtr)
|
||||
: fieldDataMeta(fieldDataMeta),
|
||||
indexMeta(indexMeta),
|
||||
chunkManagerPtr(chunkManagerPtr) {
|
||||
}
|
||||
bool
|
||||
Valid() const {
|
||||
return chunkManagerPtr != nullptr;
|
||||
}
|
||||
|
||||
FieldDataMeta fieldDataMeta;
|
||||
IndexMeta indexMeta;
|
||||
ChunkManagerPtr chunkManagerPtr;
|
||||
};
|
||||
|
||||
#define FILEMANAGER_TRY try {
|
||||
#define FILEMANAGER_CATCH \
|
||||
} \
|
||||
|
@ -24,11 +24,11 @@
|
||||
|
||||
namespace milvus::storage {
|
||||
|
||||
MemFileManagerImpl::MemFileManagerImpl(const FieldDataMeta& field_mata,
|
||||
IndexMeta index_meta,
|
||||
ChunkManagerPtr remote_chunk_manager)
|
||||
: FileManagerImpl(field_mata, index_meta) {
|
||||
rcm_ = remote_chunk_manager;
|
||||
MemFileManagerImpl::MemFileManagerImpl(
|
||||
const FileManagerContext& fileManagerContext)
|
||||
: FileManagerImpl(fileManagerContext.fieldDataMeta,
|
||||
fileManagerContext.indexMeta) {
|
||||
rcm_ = fileManagerContext.chunkManagerPtr;
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -30,9 +30,7 @@ namespace milvus::storage {
|
||||
|
||||
class MemFileManagerImpl : public FileManagerImpl {
|
||||
public:
|
||||
explicit MemFileManagerImpl(const FieldDataMeta& field_mata,
|
||||
IndexMeta index_meta,
|
||||
ChunkManagerPtr remote_chunk_manager);
|
||||
explicit MemFileManagerImpl(const FileManagerContext& fileManagerContext);
|
||||
|
||||
virtual bool
|
||||
LoadFile(const std::string& filename) noexcept;
|
||||
|
@ -1,3 +1,14 @@
|
||||
// Copyright (C) 2019-2020 Zilliz. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
// or implied. See the License for the specific language governing permissions and limitations under the License
|
||||
|
||||
//
|
||||
// Created by zilliz on 2023/7/31.
|
||||
//
|
||||
|
@ -614,19 +614,6 @@ CreateChunkManager(const StorageConfig& storage_config) {
|
||||
}
|
||||
}
|
||||
|
||||
FileManagerImplPtr
|
||||
CreateFileManager(IndexType index_type,
|
||||
const FieldDataMeta& field_meta,
|
||||
const IndexMeta& index_meta,
|
||||
ChunkManagerPtr cm) {
|
||||
if (is_in_disk_list(index_type)) {
|
||||
return std::make_shared<DiskFileManagerImpl>(
|
||||
field_meta, index_meta, cm);
|
||||
}
|
||||
|
||||
return std::make_shared<MemFileManagerImpl>(field_meta, index_meta, cm);
|
||||
}
|
||||
|
||||
FieldDataPtr
|
||||
CreateFieldData(const DataType& type, int64_t dim, int64_t total_num_rows) {
|
||||
switch (type) {
|
||||
|
@ -129,12 +129,6 @@ ReleaseArrowUnused();
|
||||
ChunkManagerPtr
|
||||
CreateChunkManager(const StorageConfig& storage_config);
|
||||
|
||||
FileManagerImplPtr
|
||||
CreateFileManager(IndexType index_type,
|
||||
const FieldDataMeta& field_meta,
|
||||
const IndexMeta& index_meta,
|
||||
ChunkManagerPtr cm);
|
||||
|
||||
FieldDataPtr
|
||||
CreateFieldData(const DataType& type,
|
||||
int64_t dim = 1,
|
||||
|
12
internal/core/thirdparty/knowhere/CMakeLists.txt
vendored
12
internal/core/thirdparty/knowhere/CMakeLists.txt
vendored
@ -11,7 +11,14 @@
|
||||
# or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
set( KNOWHERE_VERSION 7b63839 )
|
||||
set( KNOWHERE_VERSION 1dcd84b4 )
|
||||
set( GIT_REPOSITORY "https://github.com/zilliztech/knowhere.git")
|
||||
if ( INDEX_ENGINE STREQUAL "cardinal" )
|
||||
set( KNOWHERE_VERSION main)
|
||||
set( GIT_REPOSITORY "https://github.com/zilliztech/knowhere-cloud.git")
|
||||
endif()
|
||||
message(STATUS "Knowhere repo: ${GIT_REPOSITORY}")
|
||||
message(STATUS "Knowhere version: ${KNOWHERE_VERSION}")
|
||||
|
||||
message(STATUS "Building knowhere-${KNOWHERE_SOURCE_VER} from source")
|
||||
message(STATUS ${CMAKE_BUILD_TYPE})
|
||||
@ -26,11 +33,10 @@ if ( MILVUS_GPU_VERSION STREQUAL "ON" )
|
||||
set(WITH_RAFT ON CACHE BOOL "" FORCE )
|
||||
endif ()
|
||||
|
||||
|
||||
set( CMAKE_PREFIX_PATH ${CONAN_BOOST_ROOT} )
|
||||
FetchContent_Declare(
|
||||
knowhere
|
||||
GIT_REPOSITORY "https://github.com/zilliztech/knowhere.git"
|
||||
GIT_REPOSITORY ${GIT_REPOSITORY}
|
||||
GIT_TAG ${KNOWHERE_VERSION}
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/knowhere-src
|
||||
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/knowhere-build
|
||||
|
@ -60,6 +60,8 @@ IndexBuilder_build(benchmark::State& state) {
|
||||
const auto& param = index_params.params(i);
|
||||
config[param.key()] = param.value();
|
||||
}
|
||||
config[milvus::index::INDEX_ENGINE_VERSION] =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
|
||||
auto is_binary = state.range(2);
|
||||
auto dataset = GenDataset(NB, metric_type, is_binary);
|
||||
@ -68,7 +70,7 @@ IndexBuilder_build(benchmark::State& state) {
|
||||
|
||||
for (auto _ : state) {
|
||||
auto index = std::make_unique<milvus::indexbuilder::VecIndexCreator>(
|
||||
milvus::DataType::VECTOR_FLOAT, config, nullptr);
|
||||
milvus::DataType::VECTOR_FLOAT, config);
|
||||
index->Build(xb_dataset);
|
||||
}
|
||||
}
|
||||
@ -102,7 +104,7 @@ IndexBuilder_build_and_codec(benchmark::State& state) {
|
||||
|
||||
for (auto _ : state) {
|
||||
auto index = std::make_unique<milvus::indexbuilder::VecIndexCreator>(
|
||||
milvus::DataType::VECTOR_FLOAT, config, nullptr);
|
||||
milvus::DataType::VECTOR_FLOAT, config);
|
||||
|
||||
index->Build(xb_dataset);
|
||||
index->Serialize();
|
||||
|
@ -249,9 +249,11 @@ generate_index(void* raw_data,
|
||||
IndexType index_type,
|
||||
int64_t dim,
|
||||
int64_t N) {
|
||||
CreateIndexInfo create_index_info{field_type, index_type, metric_type};
|
||||
auto engine_version = knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
CreateIndexInfo create_index_info{
|
||||
field_type, index_type, metric_type, engine_version};
|
||||
auto indexing = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
|
||||
auto database = knowhere::GenDataSet(N, dim, raw_data);
|
||||
auto build_config = generate_build_conf(index_type, metric_type);
|
||||
@ -1597,7 +1599,8 @@ TEST(CApiTest, LoadIndexInfo) {
|
||||
auto N = 1024 * 10;
|
||||
auto [raw_data, timestamps, uids] = generate_data(N);
|
||||
auto indexing = knowhere::IndexFactory::Instance().Create(
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFSQ8);
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFSQ8,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
auto conf =
|
||||
knowhere::Json{{knowhere::meta::METRIC_TYPE, knowhere::metric::L2},
|
||||
{knowhere::meta::DIM, DIM},
|
||||
@ -1630,6 +1633,7 @@ TEST(CApiTest, LoadIndexInfo) {
|
||||
status = AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 0, CDataType::FloatVector, "");
|
||||
ASSERT_EQ(status.error_code, Success);
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
status = AppendIndex(c_load_index_info, c_binary_set);
|
||||
ASSERT_EQ(status.error_code, Success);
|
||||
DeleteLoadIndexInfo(c_load_index_info);
|
||||
@ -1643,7 +1647,8 @@ TEST(CApiTest, LoadIndexSearch) {
|
||||
auto num_query = 100;
|
||||
auto [raw_data, timestamps, uids] = generate_data(N);
|
||||
auto indexing = knowhere::IndexFactory::Instance().Create(
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFSQ8);
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFSQ8,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
auto conf =
|
||||
knowhere::Json{{knowhere::meta::METRIC_TYPE, knowhere::metric::L2},
|
||||
{knowhere::meta::DIM, DIM},
|
||||
@ -1667,7 +1672,9 @@ TEST(CApiTest, LoadIndexSearch) {
|
||||
auto& index_params = load_index_info.index_params;
|
||||
index_params["index_type"] = knowhere::IndexEnum::INDEX_FAISS_IVFSQ8;
|
||||
load_index_info.index = std::make_unique<VectorMemIndex>(
|
||||
index_params["index_type"], knowhere::metric::L2);
|
||||
index_params["index_type"],
|
||||
knowhere::metric::L2,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
load_index_info.index->Load(binary_set);
|
||||
|
||||
// search
|
||||
@ -1785,8 +1792,8 @@ TEST(CApiTest, Indexing_Without_Predicate) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
auto sealed_segment = SealedCreator(schema, dataset);
|
||||
sealed_segment->DropFieldData(FieldId(100));
|
||||
@ -1925,6 +1932,7 @@ TEST(CApiTest, Indexing_Expr_Without_Predicate) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2094,6 +2102,7 @@ TEST(CApiTest, Indexing_With_float_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2265,6 +2274,7 @@ TEST(CApiTest, Indexing_Expr_With_float_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2428,6 +2438,7 @@ TEST(CApiTest, Indexing_With_float_Predicate_Term) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2592,6 +2603,7 @@ TEST(CApiTest, Indexing_Expr_With_float_Predicate_Term) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2762,6 +2774,7 @@ TEST(CApiTest, Indexing_With_binary_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::BinaryVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -2932,6 +2945,7 @@ TEST(CApiTest, Indexing_Expr_With_binary_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::BinaryVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -3096,6 +3110,7 @@ TEST(CApiTest, Indexing_With_binary_Predicate_Term) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::BinaryVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -3283,6 +3298,7 @@ TEST(CApiTest, Indexing_Expr_With_binary_Predicate_Term) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::BinaryVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load index for vec field, load raw data for scalar field
|
||||
@ -3453,6 +3469,7 @@ TEST(CApiTest, SealedSegment_search_float_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
auto query_dataset = knowhere::GenDataSet(num_queries, DIM, query_ptr);
|
||||
@ -3677,6 +3694,7 @@ TEST(CApiTest, SealedSegment_search_float_With_Expr_Predicate_Range) {
|
||||
c_load_index_info, metric_type_key.c_str(), metric_type_value.c_str());
|
||||
AppendFieldInfo(
|
||||
c_load_index_info, 0, 0, 0, 100, CDataType::FloatVector, "");
|
||||
AppendIndexEngineVersionToLoadInfo(c_load_index_info, knowhere::Version::GetCurrentVersion().VersionCode().c_str());
|
||||
AppendIndex(c_load_index_info, (CBinarySet)&binary_set);
|
||||
|
||||
// load vec index
|
||||
|
@ -61,8 +61,8 @@ TEST_F(DiskAnnFileManagerTest, AddFilePositiveParallel) {
|
||||
IndexMeta index_meta = {3, 100, 1000, 1, "index"};
|
||||
|
||||
int64_t slice_size = milvus::FILE_SLICE_SIZE;
|
||||
auto diskAnnFileManager =
|
||||
std::make_shared<DiskFileManagerImpl>(filed_data_meta, index_meta, cm_);
|
||||
auto diskAnnFileManager = std::make_shared<DiskFileManagerImpl>(
|
||||
storage::FileManagerContext(filed_data_meta, index_meta, cm_));
|
||||
auto ok = diskAnnFileManager->AddFile(indexFilePath);
|
||||
EXPECT_EQ(ok, true);
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
|
||||
#include "common/LoadInfo.h"
|
||||
#include "common/Types.h"
|
||||
#include "index/IndexFactory.h"
|
||||
@ -80,8 +79,8 @@ TEST(Float16, Insert) {
|
||||
auto row_count = interface.get_row_count();
|
||||
ASSERT_EQ(N, row_count);
|
||||
for (auto chunk_id = 0; chunk_id < num_chunk; ++chunk_id) {
|
||||
auto float16_span =
|
||||
interface.chunk_data<milvus::Float16Vector>(float16_vec_fid, chunk_id);
|
||||
auto float16_span = interface.chunk_data<milvus::Float16Vector>(
|
||||
float16_vec_fid, chunk_id);
|
||||
auto begin = chunk_id * size_per_chunk;
|
||||
auto end = std::min((chunk_id + 1) * size_per_chunk, N);
|
||||
auto size_of_chunk = end - begin;
|
||||
@ -150,8 +149,7 @@ TEST(Float16, ExecWithoutPredicateFlat) {
|
||||
auto vec_ptr = dataset.get_col<float16>(vec_fid);
|
||||
|
||||
auto num_queries = 5;
|
||||
auto ph_group_raw = CreateFloat16PlaceholderGroup(
|
||||
num_queries, 32, 1024);
|
||||
auto ph_group_raw = CreateFloat16PlaceholderGroup(num_queries, 32, 1024);
|
||||
auto ph_group =
|
||||
ParsePlaceholderGroup(plan.get(), ph_group_raw.SerializeAsString());
|
||||
|
||||
@ -286,7 +284,8 @@ TEST(Float16, CApiCPlan) {
|
||||
|
||||
milvus::proto::plan::PlanNode plan_node;
|
||||
auto vector_anns = plan_node.mutable_vector_anns();
|
||||
vector_anns->set_vector_type(milvus::proto::plan::VectorType::Float16Vector);
|
||||
vector_anns->set_vector_type(
|
||||
milvus::proto::plan::VectorType::Float16Vector);
|
||||
vector_anns->set_placeholder_tag("$0");
|
||||
vector_anns->set_field_id(100);
|
||||
auto query_info = vector_anns->mutable_query_info();
|
||||
|
@ -58,7 +58,8 @@ TEST(GrowingIndex, Correctness) {
|
||||
|
||||
milvus::proto::plan::PlanNode range_query_plan_node;
|
||||
auto vector_range_querys = range_query_plan_node.mutable_vector_anns();
|
||||
vector_range_querys->set_vector_type(milvus::proto::plan::VectorType::FloatVector);
|
||||
vector_range_querys->set_vector_type(
|
||||
milvus::proto::plan::VectorType::FloatVector);
|
||||
vector_range_querys->set_placeholder_tag("$0");
|
||||
vector_range_querys->set_field_id(102);
|
||||
auto range_query_info = vector_range_querys->mutable_query_info();
|
||||
|
@ -70,10 +70,9 @@ class IndexWrapperTest : public ::testing::TestWithParam<Param> {
|
||||
|
||||
is_binary = is_binary_map[index_type];
|
||||
if (is_binary) {
|
||||
vec_field_data_type = DataType::VECTOR_FLOAT;
|
||||
;
|
||||
} else {
|
||||
vec_field_data_type = DataType::VECTOR_BINARY;
|
||||
} else {
|
||||
vec_field_data_type = DataType::VECTOR_FLOAT;
|
||||
}
|
||||
|
||||
auto dataset = GenDataset(NB, metric_type, is_binary);
|
||||
@ -129,8 +128,15 @@ INSTANTIATE_TEST_CASE_P(
|
||||
std::pair(knowhere::IndexEnum::INDEX_HNSW, knowhere::metric::L2)));
|
||||
|
||||
TEST_P(IndexWrapperTest, BuildAndQuery) {
|
||||
milvus::storage::FieldDataMeta field_data_meta{1, 2, 3, 100};
|
||||
milvus::storage::IndexMeta index_meta{3, 100, 1000, 1};
|
||||
auto chunk_manager = milvus::storage::CreateChunkManager(storage_config_);
|
||||
|
||||
storage::FileManagerContext file_manager_context(
|
||||
field_data_meta, index_meta, chunk_manager);
|
||||
config[milvus::index::INDEX_ENGINE_VERSION] = knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
auto index = milvus::indexbuilder::IndexFactory::GetInstance().CreateIndex(
|
||||
vec_field_data_type, config, nullptr);
|
||||
vec_field_data_type, config, file_manager_context);
|
||||
|
||||
auto dataset = GenDataset(NB, metric_type, is_binary);
|
||||
knowhere::DataSetPtr xb_dataset;
|
||||
@ -146,12 +152,18 @@ TEST_P(IndexWrapperTest, BuildAndQuery) {
|
||||
|
||||
ASSERT_NO_THROW(index->Build(xb_dataset));
|
||||
auto binary_set = index->Serialize();
|
||||
std::vector<std::string> index_files;
|
||||
for (auto& binary : binary_set.binary_map_) {
|
||||
index_files.emplace_back(binary.first);
|
||||
}
|
||||
config["index_files"] = index_files;
|
||||
auto copy_index =
|
||||
milvus::indexbuilder::IndexFactory::GetInstance().CreateIndex(
|
||||
vec_field_data_type, config, nullptr);
|
||||
vec_field_data_type, config, file_manager_context);
|
||||
auto vec_index =
|
||||
static_cast<milvus::indexbuilder::VecIndexCreator*>(copy_index.get());
|
||||
ASSERT_EQ(vec_index->dim(), DIM);
|
||||
|
||||
ASSERT_NO_THROW(vec_index->Load(binary_set));
|
||||
|
||||
milvus::SearchInfo search_info;
|
||||
|
@ -223,8 +223,10 @@ TEST(Indexing, Naive) {
|
||||
create_index_info.field_type = DataType::VECTOR_FLOAT;
|
||||
create_index_info.metric_type = knowhere::metric::L2;
|
||||
create_index_info.index_type = knowhere::IndexEnum::INDEX_FAISS_IVFPQ;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
auto index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
|
||||
auto build_conf = knowhere::Json{
|
||||
{knowhere::meta::METRIC_TYPE, knowhere::metric::L2},
|
||||
@ -386,15 +388,17 @@ TEST_P(IndexTest, BuildAndQuery) {
|
||||
create_index_info.index_type = index_type;
|
||||
create_index_info.metric_type = metric_type;
|
||||
create_index_info.field_type = vec_field_data_type;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
index::IndexBasePtr index;
|
||||
|
||||
milvus::storage::FieldDataMeta field_data_meta{1, 2, 3, 100};
|
||||
milvus::storage::IndexMeta index_meta{3, 100, 1000, 1};
|
||||
auto chunk_manager = milvus::storage::CreateChunkManager(storage_config_);
|
||||
auto file_manager = milvus::storage::CreateFileManager(
|
||||
index_type, field_data_meta, index_meta, chunk_manager);
|
||||
milvus::storage::FileManagerContext file_manager_context(
|
||||
field_data_meta, index_meta, chunk_manager);
|
||||
index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
|
||||
ASSERT_NO_THROW(index->BuildWithDataset(xb_dataset, build_conf));
|
||||
milvus::index::IndexBasePtr new_index;
|
||||
@ -404,7 +408,7 @@ TEST_P(IndexTest, BuildAndQuery) {
|
||||
index.reset();
|
||||
|
||||
new_index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
vec_index = dynamic_cast<milvus::index::VectorIndex*>(new_index.get());
|
||||
|
||||
std::vector<std::string> index_files;
|
||||
@ -437,15 +441,17 @@ TEST_P(IndexTest, Mmap) {
|
||||
create_index_info.index_type = index_type;
|
||||
create_index_info.metric_type = metric_type;
|
||||
create_index_info.field_type = vec_field_data_type;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
index::IndexBasePtr index;
|
||||
|
||||
milvus::storage::FieldDataMeta field_data_meta{1, 2, 3, 100};
|
||||
milvus::storage::IndexMeta index_meta{3, 100, 1000, 1};
|
||||
auto chunk_manager = milvus::storage::CreateChunkManager(storage_config_);
|
||||
auto file_manager = milvus::storage::CreateFileManager(
|
||||
index_type, field_data_meta, index_meta, chunk_manager);
|
||||
milvus::storage::FileManagerContext file_manager_context(
|
||||
field_data_meta, index_meta, chunk_manager);
|
||||
index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
|
||||
ASSERT_NO_THROW(index->BuildWithDataset(xb_dataset, build_conf));
|
||||
milvus::index::IndexBasePtr new_index;
|
||||
@ -455,7 +461,7 @@ TEST_P(IndexTest, Mmap) {
|
||||
index.reset();
|
||||
|
||||
new_index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
if (!new_index->IsMmapSupported()) {
|
||||
return;
|
||||
}
|
||||
@ -492,15 +498,17 @@ TEST_P(IndexTest, GetVector) {
|
||||
create_index_info.index_type = index_type;
|
||||
create_index_info.metric_type = metric_type;
|
||||
create_index_info.field_type = vec_field_data_type;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
index::IndexBasePtr index;
|
||||
|
||||
milvus::storage::FieldDataMeta field_data_meta{1, 2, 3, 100};
|
||||
milvus::storage::IndexMeta index_meta{3, 100, 1000, 1};
|
||||
auto chunk_manager = milvus::storage::CreateChunkManager(storage_config_);
|
||||
auto file_manager = milvus::storage::CreateFileManager(
|
||||
index_type, field_data_meta, index_meta, chunk_manager);
|
||||
milvus::storage::FileManagerContext file_manager_context(
|
||||
field_data_meta, index_meta, chunk_manager);
|
||||
index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
|
||||
ASSERT_NO_THROW(index->BuildWithDataset(xb_dataset, build_conf));
|
||||
milvus::index::IndexBasePtr new_index;
|
||||
@ -512,7 +520,7 @@ TEST_P(IndexTest, GetVector) {
|
||||
index.reset();
|
||||
|
||||
new_index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
|
||||
vec_index = dynamic_cast<milvus::index::VectorIndex*>(new_index.get());
|
||||
|
||||
@ -569,6 +577,8 @@ TEST(Indexing, SearchDiskAnnWithInvalidParam) {
|
||||
create_index_info.index_type = index_type;
|
||||
create_index_info.metric_type = metric_type;
|
||||
create_index_info.field_type = milvus::DataType::VECTOR_FLOAT;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
|
||||
int64_t collection_id = 1;
|
||||
int64_t partition_id = 2;
|
||||
@ -583,10 +593,10 @@ TEST(Indexing, SearchDiskAnnWithInvalidParam) {
|
||||
milvus::storage::IndexMeta index_meta{
|
||||
segment_id, field_id, build_id, index_version};
|
||||
auto chunk_manager = storage::CreateChunkManager(storage_config);
|
||||
auto file_manager = milvus::storage::CreateFileManager(
|
||||
index_type, field_data_meta, index_meta, chunk_manager);
|
||||
milvus::storage::FileManagerContext file_manager_context(
|
||||
field_data_meta, index_meta, chunk_manager);
|
||||
auto index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
|
||||
auto build_conf = Config{
|
||||
{knowhere::meta::METRIC_TYPE, metric_type},
|
||||
@ -611,7 +621,7 @@ TEST(Indexing, SearchDiskAnnWithInvalidParam) {
|
||||
index.reset();
|
||||
|
||||
auto new_index = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, file_manager);
|
||||
create_index_info, file_manager_context);
|
||||
auto vec_index = dynamic_cast<milvus::index::VectorIndex*>(new_index.get());
|
||||
std::vector<std::string> index_files;
|
||||
for (auto& binary : binary_set.binary_map_) {
|
||||
|
@ -112,7 +112,9 @@ TYPED_TEST_P(TypedScalarIndexCreatorTest, Constructor) {
|
||||
}
|
||||
|
||||
auto creator = milvus::indexbuilder::CreateScalarIndex(
|
||||
milvus::DataType(dtype), config, nullptr);
|
||||
milvus::DataType(dtype),
|
||||
config,
|
||||
milvus::storage::FileManagerContext());
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,12 +135,16 @@ TYPED_TEST_P(TypedScalarIndexCreatorTest, Codec) {
|
||||
config[iter->first] = iter->second;
|
||||
}
|
||||
auto creator = milvus::indexbuilder::CreateScalarIndex(
|
||||
milvus::DataType(dtype), config, nullptr);
|
||||
milvus::DataType(dtype),
|
||||
config,
|
||||
milvus::storage::FileManagerContext());
|
||||
auto arr = GenArr<T>(nb);
|
||||
build_index<T>(creator, arr);
|
||||
auto binary_set = creator->Serialize();
|
||||
auto copy_creator = milvus::indexbuilder::CreateScalarIndex(
|
||||
milvus::DataType(dtype), config, nullptr);
|
||||
milvus::DataType(dtype),
|
||||
config,
|
||||
milvus::storage::FileManagerContext());
|
||||
copy_creator->Load(binary_set);
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "test_utils/storage_test_utils.h"
|
||||
#include "index/IndexFactory.h"
|
||||
#include "storage/Util.h"
|
||||
#include "knowhere/version.h"
|
||||
#include "storage/ChunkCacheSingleton.h"
|
||||
#include "storage/RemoteChunkManagerSingleton.h"
|
||||
#include "storage/MinioChunkManager.h"
|
||||
@ -88,9 +89,11 @@ TEST(Sealed, without_predicate) {
|
||||
create_index_info.field_type = DataType::VECTOR_FLOAT;
|
||||
create_index_info.metric_type = knowhere::metric::L2;
|
||||
create_index_info.index_type = knowhere::IndexEnum::INDEX_FAISS_IVFFLAT;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
|
||||
auto indexing = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
|
||||
auto build_conf =
|
||||
knowhere::Json{{knowhere::meta::METRIC_TYPE, knowhere::metric::L2},
|
||||
@ -201,8 +204,10 @@ TEST(Sealed, with_predicate) {
|
||||
create_index_info.field_type = DataType::VECTOR_FLOAT;
|
||||
create_index_info.metric_type = knowhere::metric::L2;
|
||||
create_index_info.index_type = knowhere::IndexEnum::INDEX_FAISS_IVFFLAT;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
auto indexing = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
|
||||
auto build_conf =
|
||||
knowhere::Json{{knowhere::meta::METRIC_TYPE, knowhere::metric::L2},
|
||||
@ -305,8 +310,10 @@ TEST(Sealed, with_predicate_filter_all) {
|
||||
create_index_info.field_type = DataType::VECTOR_FLOAT;
|
||||
create_index_info.metric_type = knowhere::metric::L2;
|
||||
create_index_info.index_type = knowhere::IndexEnum::INDEX_FAISS_IVFFLAT;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
auto ivf_indexing = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
|
||||
auto ivf_build_conf =
|
||||
knowhere::Json{{knowhere::meta::DIM, std::to_string(dim)},
|
||||
@ -343,8 +350,10 @@ TEST(Sealed, with_predicate_filter_all) {
|
||||
create_index_info.field_type = DataType::VECTOR_FLOAT;
|
||||
create_index_info.metric_type = knowhere::metric::L2;
|
||||
create_index_info.index_type = knowhere::IndexEnum::INDEX_HNSW;
|
||||
create_index_info.index_engine_version =
|
||||
knowhere::Version::GetCurrentVersion().VersionCode();
|
||||
auto hnsw_indexing = milvus::index::IndexFactory::GetInstance().CreateIndex(
|
||||
create_index_info, nullptr);
|
||||
create_index_info, milvus::storage::FileManagerContext());
|
||||
hnsw_indexing->BuildWithDataset(database, hnsw_conf);
|
||||
|
||||
auto hnsw_vec_index =
|
||||
@ -1212,8 +1221,10 @@ TEST(Sealed, GetVectorFromChunkCache) {
|
||||
auto fakevec = dataset.get_col<float>(fakevec_id);
|
||||
auto conf = generate_build_conf(index_type, metric_type);
|
||||
auto ds = knowhere::GenDataSet(N, dim, fakevec.data());
|
||||
auto indexing =
|
||||
std::make_unique<index::VectorMemIndex>(index_type, metric_type);
|
||||
auto indexing = std::make_unique<index::VectorMemIndex>(
|
||||
index_type,
|
||||
metric_type,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
indexing->BuildWithDataset(ds, conf);
|
||||
auto segment_sealed = CreateSealedSegment(schema);
|
||||
|
||||
|
@ -186,10 +186,7 @@ GenTermPlan(const FieldMeta& fvec_meta,
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
|
||||
auto anns = GenAnns(expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns = GenAnns(expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = GenPlanNode();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
@ -232,10 +229,8 @@ GenAlwaysFalsePlan(const FieldMeta& fvec_meta, const FieldMeta& str_meta) {
|
||||
} else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) {
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
auto anns = GenAnns(always_false_expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns =
|
||||
GenAnns(always_false_expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = GenPlanNode();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
@ -253,10 +248,8 @@ GenAlwaysTruePlan(const FieldMeta& fvec_meta, const FieldMeta& str_meta) {
|
||||
} else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) {
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
auto anns = GenAnns(always_true_expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns =
|
||||
GenAnns(always_true_expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = GenPlanNode();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
@ -386,11 +379,7 @@ TEST(StringExpr, Compare) {
|
||||
} else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) {
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
auto anns =
|
||||
GenAnns(expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns = GenAnns(expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = std::make_unique<proto::plan::PlanNode>();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
@ -497,11 +486,7 @@ TEST(StringExpr, UnaryRange) {
|
||||
} else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) {
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
auto anns =
|
||||
GenAnns(expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns = GenAnns(expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = std::make_unique<proto::plan::PlanNode>();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
@ -600,11 +585,7 @@ TEST(StringExpr, BinaryRange) {
|
||||
} else if (fvec_meta.get_data_type() == DataType::VECTOR_FLOAT16) {
|
||||
vector_type = proto::plan::VectorType::Float16Vector;
|
||||
}
|
||||
auto anns =
|
||||
GenAnns(expr,
|
||||
vector_type,
|
||||
fvec_meta.get_id().get(),
|
||||
"$0");
|
||||
auto anns = GenAnns(expr, vector_type, fvec_meta.get_id().get(), "$0");
|
||||
|
||||
auto plan_node = std::make_unique<proto::plan::PlanNode>();
|
||||
plan_node->set_allocated_vector_anns(anns);
|
||||
|
@ -910,7 +910,9 @@ GenVecIndexing(int64_t N, int64_t dim, const float* vec) {
|
||||
{knowhere::meta::DEVICE_ID, 0}};
|
||||
auto database = knowhere::GenDataSet(N, dim, vec);
|
||||
auto indexing = std::make_unique<index::VectorMemIndex>(
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFFLAT, knowhere::metric::L2);
|
||||
knowhere::IndexEnum::INDEX_FAISS_IVFFLAT,
|
||||
knowhere::metric::L2,
|
||||
knowhere::Version::GetCurrentVersion().VersionCode());
|
||||
indexing->BuildWithDataset(database, conf);
|
||||
return indexing;
|
||||
}
|
||||
|
@ -301,6 +301,7 @@ func (ib *indexBuilder) process(buildID UniqueID) bool {
|
||||
IndexParams: indexParams,
|
||||
TypeParams: typeParams,
|
||||
NumRows: meta.NumRows,
|
||||
IndexEngineVersion: meta.IndexEngineVersion,
|
||||
}
|
||||
if err := ib.assignTask(client, req); err != nil {
|
||||
// need to release lock then reassign, so set task state to retry
|
||||
|
@ -51,7 +51,10 @@ func (s *Server) startIndexService(ctx context.Context) {
|
||||
}
|
||||
|
||||
func (s *Server) createIndexForSegment(segment *SegmentInfo, indexID UniqueID) error {
|
||||
log.Info("create index for segment", zap.Int64("segmentID", segment.ID), zap.Int64("indexID", indexID))
|
||||
indexEngineVersion := Params.CommonCfg.IndexEngineVersion.GetValue()
|
||||
log.Info("create index for segment", zap.Int64("segmentID", segment.ID), zap.Int64("indexID", indexID),
|
||||
zap.String("index_engine_version", indexEngineVersion),
|
||||
)
|
||||
buildID, err := s.allocator.allocID(context.Background())
|
||||
if err != nil {
|
||||
return err
|
||||
@ -65,6 +68,7 @@ func (s *Server) createIndexForSegment(segment *SegmentInfo, indexID UniqueID) e
|
||||
BuildID: buildID,
|
||||
CreateTime: uint64(segment.ID),
|
||||
WriteHandoff: false,
|
||||
IndexEngineVersion: indexEngineVersion,
|
||||
}
|
||||
if err = s.meta.AddSegmentIndex(segIndex); err != nil {
|
||||
return err
|
||||
@ -742,6 +746,7 @@ func (s *Server) GetIndexInfos(ctx context.Context, req *indexpb.GetIndexInfoReq
|
||||
SerializedSize: segIdx.IndexSize,
|
||||
IndexVersion: segIdx.IndexVersion,
|
||||
NumRows: segIdx.NumRows,
|
||||
IndexEngineVersion: segIdx.IndexEngineVersion,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ func (i *IndexNode) CreateJob(ctx context.Context, req *indexpb.CreateJobRequest
|
||||
zap.Any("typeParams", req.GetTypeParams()),
|
||||
zap.Any("indexParams", req.GetIndexParams()),
|
||||
zap.Int64("numRows", req.GetNumRows()),
|
||||
zap.String("index_engine_version", req.GetIndexEngineVersion()),
|
||||
)
|
||||
ctx, sp := otel.Tracer(typeutil.IndexNodeRole).Start(ctx, "IndexNode-CreateIndex", trace.WithAttributes(
|
||||
attribute.Int64("indexBuildID", req.GetBuildID()),
|
||||
|
@ -337,6 +337,11 @@ func (it *indexBuildTask) BuildIndex(ctx context.Context) error {
|
||||
}
|
||||
}
|
||||
|
||||
if err := buildIndexInfo.AppendIndexEngineVersion(it.req.GetIndexEngineVersion()); err != nil {
|
||||
log.Ctx(ctx).Warn("append index engine version failed", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
it.index, err = indexcgowrapper.CreateIndex(ctx, buildIndexInfo)
|
||||
if err != nil {
|
||||
if it.index != nil && it.index.CleanLocalData() != nil {
|
||||
|
@ -23,6 +23,7 @@ type SegmentIndex struct {
|
||||
IndexSize uint64
|
||||
// deprecated
|
||||
WriteHandoff bool
|
||||
IndexEngineVersion string
|
||||
}
|
||||
|
||||
func UnmarshalSegmentIndexModel(segIndex *indexpb.SegmentIndex) *SegmentIndex {
|
||||
@ -46,6 +47,7 @@ func UnmarshalSegmentIndexModel(segIndex *indexpb.SegmentIndex) *SegmentIndex {
|
||||
IndexFileKeys: common.CloneStringList(segIndex.IndexFileKeys),
|
||||
IndexSize: segIndex.SerializeSize,
|
||||
WriteHandoff: segIndex.WriteHandoff,
|
||||
IndexEngineVersion: segIndex.GetIndexEngineVersion(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,6 +72,7 @@ func MarshalSegmentIndexModel(segIdx *SegmentIndex) *indexpb.SegmentIndex {
|
||||
CreateTime: segIdx.CreateTime,
|
||||
SerializeSize: segIdx.IndexSize,
|
||||
WriteHandoff: segIdx.WriteHandoff,
|
||||
IndexEngineVersion: segIdx.IndexEngineVersion,
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,5 +93,6 @@ func CloneSegmentIndex(segIndex *SegmentIndex) *SegmentIndex {
|
||||
IndexFileKeys: common.CloneStringList(segIndex.IndexFileKeys),
|
||||
IndexSize: segIndex.IndexSize,
|
||||
WriteHandoff: segIndex.WriteHandoff,
|
||||
IndexEngineVersion: segIndex.IndexEngineVersion,
|
||||
}
|
||||
}
|
||||
|
@ -83,6 +83,7 @@ message SegmentIndex {
|
||||
uint64 create_time = 13;
|
||||
uint64 serialize_size = 14;
|
||||
bool write_handoff = 15;
|
||||
string index_engine_version = 16;
|
||||
}
|
||||
|
||||
message RegisterNodeRequest {
|
||||
@ -152,6 +153,7 @@ message IndexFilePathInfo {
|
||||
uint64 serialized_size = 8;
|
||||
int64 index_version = 9;
|
||||
int64 num_rows = 10;
|
||||
string index_engine_version = 11;
|
||||
}
|
||||
|
||||
message SegmentInfo {
|
||||
@ -223,6 +225,7 @@ message CreateJobRequest {
|
||||
repeated common.KeyValuePair index_params = 9;
|
||||
repeated common.KeyValuePair type_params = 10;
|
||||
int64 num_rows = 11;
|
||||
string index_engine_version = 12;
|
||||
}
|
||||
|
||||
message QueryJobsRequest {
|
||||
|
@ -236,6 +236,7 @@ type SegmentIndex struct {
|
||||
CreateTime uint64 `protobuf:"varint,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
|
||||
SerializeSize uint64 `protobuf:"varint,14,opt,name=serialize_size,json=serializeSize,proto3" json:"serialize_size,omitempty"`
|
||||
WriteHandoff bool `protobuf:"varint,15,opt,name=write_handoff,json=writeHandoff,proto3" json:"write_handoff,omitempty"`
|
||||
IndexEngineVersion string `protobuf:"bytes,16,opt,name=index_engine_version,json=indexEngineVersion,proto3" json:"index_engine_version,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -371,6 +372,13 @@ func (m *SegmentIndex) GetWriteHandoff() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *SegmentIndex) GetIndexEngineVersion() string {
|
||||
if m != nil {
|
||||
return m.IndexEngineVersion
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type RegisterNodeRequest struct {
|
||||
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
Address *commonpb.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
|
||||
@ -893,6 +901,7 @@ type IndexFilePathInfo struct {
|
||||
SerializedSize uint64 `protobuf:"varint,8,opt,name=serialized_size,json=serializedSize,proto3" json:"serialized_size,omitempty"`
|
||||
IndexVersion int64 `protobuf:"varint,9,opt,name=index_version,json=indexVersion,proto3" json:"index_version,omitempty"`
|
||||
NumRows int64 `protobuf:"varint,10,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"`
|
||||
IndexEngineVersion string `protobuf:"bytes,11,opt,name=index_engine_version,json=indexEngineVersion,proto3" json:"index_engine_version,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -993,6 +1002,13 @@ func (m *IndexFilePathInfo) GetNumRows() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *IndexFilePathInfo) GetIndexEngineVersion() string {
|
||||
if m != nil {
|
||||
return m.IndexEngineVersion
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type SegmentInfo struct {
|
||||
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
|
||||
SegmentID int64 `protobuf:"varint,2,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
|
||||
@ -1517,6 +1533,7 @@ type CreateJobRequest struct {
|
||||
IndexParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=index_params,json=indexParams,proto3" json:"index_params,omitempty"`
|
||||
TypeParams []*commonpb.KeyValuePair `protobuf:"bytes,10,rep,name=type_params,json=typeParams,proto3" json:"type_params,omitempty"`
|
||||
NumRows int64 `protobuf:"varint,11,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"`
|
||||
IndexEngineVersion string `protobuf:"bytes,12,opt,name=index_engine_version,json=indexEngineVersion,proto3" json:"index_engine_version,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -1624,6 +1641,13 @@ func (m *CreateJobRequest) GetNumRows() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *CreateJobRequest) GetIndexEngineVersion() string {
|
||||
if m != nil {
|
||||
return m.IndexEngineVersion
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type QueryJobsRequest struct {
|
||||
ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
|
||||
BuildIDs []int64 `protobuf:"varint,2,rep,packed,name=buildIDs,proto3" json:"buildIDs,omitempty"`
|
||||
@ -2173,152 +2197,154 @@ func init() {
|
||||
func init() { proto.RegisterFile("index_coord.proto", fileDescriptor_f9e019eb3fda53c2) }
|
||||
|
||||
var fileDescriptor_f9e019eb3fda53c2 = []byte{
|
||||
// 2319 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcf, 0x6f, 0x1c, 0x49,
|
||||
0xf5, 0x4f, 0xbb, 0xc7, 0xf6, 0xf4, 0xeb, 0x19, 0xff, 0xa8, 0x78, 0xbf, 0xdf, 0xc9, 0x24, 0x21,
|
||||
0x4e, 0x67, 0x93, 0x18, 0x44, 0x9c, 0xe0, 0x65, 0xd1, 0x82, 0x00, 0xc9, 0xb1, 0x37, 0xc9, 0x24,
|
||||
0x9b, 0xc8, 0xb4, 0xa3, 0x48, 0xac, 0x10, 0x4d, 0xcf, 0x74, 0x8d, 0x5d, 0xeb, 0x9e, 0xae, 0x49,
|
||||
0x57, 0x75, 0x12, 0x07, 0x09, 0xc1, 0x61, 0x0f, 0xa0, 0x95, 0x10, 0x68, 0x25, 0xfe, 0x01, 0x4e,
|
||||
0xfb, 0x27, 0x70, 0xe1, 0xc2, 0x91, 0x13, 0x77, 0x2e, 0xfc, 0x13, 0x5c, 0x51, 0xfd, 0xe8, 0x9e,
|
||||
0xee, 0x9e, 0x1e, 0xcf, 0xc4, 0x36, 0x42, 0x82, 0xdb, 0xd4, 0xab, 0x57, 0x3f, 0xfa, 0xbd, 0xcf,
|
||||
0x7b, 0xef, 0xf3, 0x6a, 0x60, 0x95, 0x44, 0x01, 0x7e, 0xe3, 0xf5, 0x28, 0x8d, 0x83, 0xcd, 0x61,
|
||||
0x4c, 0x39, 0x45, 0x68, 0x40, 0xc2, 0x57, 0x09, 0x53, 0xa3, 0x4d, 0x39, 0xdf, 0x6e, 0xf4, 0xe8,
|
||||
0x60, 0x40, 0x23, 0x25, 0x6b, 0x2f, 0x91, 0x88, 0xe3, 0x38, 0xf2, 0x43, 0x3d, 0x6e, 0xe4, 0x57,
|
||||
0x38, 0x7f, 0xaf, 0x81, 0xd5, 0x11, 0xab, 0x3a, 0x51, 0x9f, 0x22, 0x07, 0x1a, 0x3d, 0x1a, 0x86,
|
||||
0xb8, 0xc7, 0x09, 0x8d, 0x3a, 0xbb, 0x2d, 0x63, 0xdd, 0xd8, 0x30, 0xdd, 0x82, 0x0c, 0xb5, 0x60,
|
||||
0xb1, 0x4f, 0x70, 0x18, 0x74, 0x76, 0x5b, 0x73, 0x72, 0x3a, 0x1d, 0xa2, 0xab, 0x00, 0xea, 0x82,
|
||||
0x91, 0x3f, 0xc0, 0x2d, 0x73, 0xdd, 0xd8, 0xb0, 0x5c, 0x4b, 0x4a, 0x9e, 0xf9, 0x03, 0x2c, 0x16,
|
||||
0xca, 0x41, 0x67, 0xb7, 0x55, 0x53, 0x0b, 0xf5, 0x10, 0xdd, 0x07, 0x9b, 0x1f, 0x0f, 0xb1, 0x37,
|
||||
0xf4, 0x63, 0x7f, 0xc0, 0x5a, 0xf3, 0xeb, 0xe6, 0x86, 0xbd, 0x75, 0x7d, 0xb3, 0xf0, 0x69, 0xfa,
|
||||
0x9b, 0x9e, 0xe0, 0xe3, 0x17, 0x7e, 0x98, 0xe0, 0x3d, 0x9f, 0xc4, 0x2e, 0x88, 0x55, 0x7b, 0x72,
|
||||
0x11, 0xda, 0x85, 0x86, 0x3a, 0x5c, 0x6f, 0xb2, 0x30, 0xeb, 0x26, 0xb6, 0x5c, 0xa6, 0x77, 0xb9,
|
||||
0xae, 0x77, 0xc1, 0x81, 0x17, 0xd3, 0xd7, 0xac, 0xb5, 0x28, 0x2f, 0x6a, 0x6b, 0x99, 0x4b, 0x5f,
|
||||
0x33, 0xf1, 0x95, 0x9c, 0x72, 0x3f, 0x54, 0x0a, 0x75, 0xa9, 0x60, 0x49, 0x89, 0x9c, 0xfe, 0x10,
|
||||
0xe6, 0x19, 0xf7, 0x39, 0x6e, 0x59, 0xeb, 0xc6, 0xc6, 0xd2, 0xd6, 0xb5, 0xca, 0x0b, 0x48, 0x8b,
|
||||
0xef, 0x0b, 0x35, 0x57, 0x69, 0xa3, 0x0f, 0xe1, 0xff, 0xd5, 0xf5, 0xe5, 0xd0, 0xeb, 0xfb, 0x24,
|
||||
0xf4, 0x62, 0xec, 0x33, 0x1a, 0xb5, 0x40, 0x1a, 0x72, 0x8d, 0x64, 0x6b, 0x1e, 0xf8, 0x24, 0x74,
|
||||
0xe5, 0x1c, 0x72, 0xa0, 0x49, 0x98, 0xe7, 0x27, 0x9c, 0x7a, 0x72, 0xbe, 0x65, 0xaf, 0x1b, 0x1b,
|
||||
0x75, 0xd7, 0x26, 0x6c, 0x3b, 0xe1, 0x54, 0x1e, 0x83, 0x9e, 0xc2, 0x6a, 0xc2, 0x70, 0xec, 0x15,
|
||||
0xcc, 0xd3, 0x98, 0xd5, 0x3c, 0xcb, 0x62, 0x6d, 0x27, 0x67, 0xa2, 0x6f, 0x02, 0x1a, 0xe2, 0x28,
|
||||
0x20, 0xd1, 0x81, 0xde, 0x51, 0xda, 0xa1, 0x29, 0xed, 0xb0, 0xa2, 0x67, 0xa4, 0xbe, 0x30, 0x87,
|
||||
0xf3, 0xb9, 0x01, 0xf0, 0x40, 0xe2, 0x43, 0xde, 0xe5, 0xfb, 0x29, 0x44, 0x48, 0xd4, 0xa7, 0x12,
|
||||
0x5e, 0xf6, 0xd6, 0xd5, 0xcd, 0x71, 0x0c, 0x6f, 0x66, 0x98, 0xd4, 0x08, 0x92, 0xf0, 0x6c, 0xc1,
|
||||
0x62, 0x80, 0x43, 0xcc, 0x71, 0x20, 0xa1, 0x57, 0x77, 0xd3, 0x21, 0xba, 0x06, 0x76, 0x2f, 0xc6,
|
||||
0xc2, 0x72, 0x9c, 0x68, 0xec, 0xd5, 0x5c, 0x50, 0xa2, 0xe7, 0x64, 0x80, 0x9d, 0xcf, 0x6b, 0xd0,
|
||||
0xd8, 0xc7, 0x07, 0x03, 0x1c, 0x71, 0x75, 0x93, 0x59, 0xa0, 0xbe, 0x0e, 0xf6, 0xd0, 0x8f, 0x39,
|
||||
0xd1, 0x2a, 0x0a, 0xee, 0x79, 0x11, 0xba, 0x02, 0x16, 0xd3, 0xbb, 0xee, 0xca, 0x53, 0x4d, 0x77,
|
||||
0x24, 0x40, 0x97, 0xa0, 0x1e, 0x25, 0x03, 0x65, 0x20, 0x0d, 0xf9, 0x28, 0x19, 0x48, 0x98, 0xe4,
|
||||
0x82, 0x61, 0xbe, 0x18, 0x0c, 0x2d, 0x58, 0xec, 0x26, 0x44, 0xc6, 0xd7, 0x82, 0x9a, 0xd1, 0x43,
|
||||
0xf4, 0x7f, 0xb0, 0x10, 0xd1, 0x00, 0x77, 0x76, 0x35, 0x2c, 0xf5, 0x08, 0xdd, 0x80, 0xa6, 0x32,
|
||||
0xea, 0x2b, 0x1c, 0x33, 0x42, 0x23, 0x0d, 0x4a, 0x85, 0xe4, 0x17, 0x4a, 0x76, 0x5a, 0x5c, 0x5e,
|
||||
0x03, 0x7b, 0x1c, 0x8b, 0xd0, 0x1f, 0x21, 0xf0, 0x16, 0x2c, 0xab, 0xc3, 0xfb, 0x24, 0xc4, 0xde,
|
||||
0x11, 0x3e, 0x66, 0x2d, 0x7b, 0xdd, 0xdc, 0xb0, 0x5c, 0x75, 0xa7, 0x07, 0x24, 0xc4, 0x4f, 0xf0,
|
||||
0x31, 0xcb, 0xfb, 0xae, 0x71, 0xa2, 0xef, 0x9a, 0x65, 0xdf, 0xa1, 0x9b, 0xb0, 0xc4, 0x70, 0x4c,
|
||||
0xfc, 0x90, 0xbc, 0xc5, 0x1e, 0x23, 0x6f, 0x71, 0x6b, 0x49, 0xea, 0x34, 0x33, 0xe9, 0x3e, 0x79,
|
||||
0x8b, 0x85, 0x19, 0x5e, 0xc7, 0x84, 0x63, 0xef, 0xd0, 0x8f, 0x02, 0xda, 0xef, 0xb7, 0x96, 0xe5,
|
||||
0x39, 0x0d, 0x29, 0x7c, 0xa4, 0x64, 0xce, 0x1f, 0x0c, 0xb8, 0xe8, 0xe2, 0x03, 0xc2, 0x38, 0x8e,
|
||||
0x9f, 0xd1, 0x00, 0xbb, 0xf8, 0x65, 0x82, 0x19, 0x47, 0xf7, 0xa0, 0xd6, 0xf5, 0x19, 0xd6, 0x90,
|
||||
0xbc, 0x52, 0x69, 0x9d, 0xa7, 0xec, 0xe0, 0xbe, 0xcf, 0xb0, 0x2b, 0x35, 0xd1, 0x77, 0x60, 0xd1,
|
||||
0x0f, 0x82, 0x18, 0x33, 0x26, 0x81, 0x31, 0x69, 0xd1, 0xb6, 0xd2, 0x71, 0x53, 0xe5, 0x9c, 0x17,
|
||||
0xcd, 0xbc, 0x17, 0x9d, 0xdf, 0x1a, 0xb0, 0x56, 0xbc, 0x19, 0x1b, 0xd2, 0x88, 0x61, 0xf4, 0x01,
|
||||
0x2c, 0x08, 0x5f, 0x24, 0x4c, 0x5f, 0xee, 0x72, 0xe5, 0x39, 0xfb, 0x52, 0xc5, 0xd5, 0xaa, 0x22,
|
||||
0xa5, 0x92, 0x88, 0xf0, 0x34, 0xdc, 0xd5, 0x0d, 0xaf, 0x97, 0x23, 0x4d, 0x17, 0x86, 0x4e, 0x44,
|
||||
0xb8, 0x8a, 0x6e, 0x17, 0x48, 0xf6, 0xdb, 0xf9, 0x31, 0xac, 0x3d, 0xc4, 0x3c, 0x87, 0x09, 0x6d,
|
||||
0xab, 0x59, 0x42, 0xa7, 0x58, 0x0b, 0xe6, 0x4a, 0xb5, 0xc0, 0xf9, 0xa3, 0x01, 0xef, 0x95, 0xf6,
|
||||
0x3e, 0xcb, 0xd7, 0x66, 0xe0, 0x9e, 0x3b, 0x0b, 0xb8, 0xcd, 0x32, 0xb8, 0x9d, 0x5f, 0x1a, 0x70,
|
||||
0xf9, 0x21, 0xe6, 0xf9, 0xc4, 0x71, 0xce, 0x96, 0x40, 0x5f, 0x03, 0xc8, 0x12, 0x06, 0x6b, 0x99,
|
||||
0xeb, 0xe6, 0x86, 0xe9, 0xe6, 0x24, 0xce, 0xaf, 0x0d, 0x58, 0x1d, 0x3b, 0xbf, 0x98, 0x77, 0x8c,
|
||||
0x72, 0xde, 0xf9, 0x77, 0x99, 0xe3, 0xf7, 0x06, 0x5c, 0xa9, 0x36, 0xc7, 0x59, 0x9c, 0xf7, 0x03,
|
||||
0xb5, 0x08, 0x0b, 0x94, 0x8a, 0xa2, 0x74, 0xb3, 0xaa, 0x1e, 0x8c, 0x9f, 0xa9, 0x17, 0x39, 0x5f,
|
||||
0x98, 0x80, 0x76, 0x64, 0xb2, 0x50, 0x55, 0xe7, 0x1d, 0x5c, 0x73, 0x6a, 0x2a, 0x53, 0x22, 0x2c,
|
||||
0xb5, 0xf3, 0x20, 0x2c, 0xf3, 0xa7, 0x22, 0x2c, 0x57, 0xc0, 0x12, 0x59, 0x93, 0x71, 0x7f, 0x30,
|
||||
0x94, 0xf5, 0xa2, 0xe6, 0x8e, 0x04, 0xe3, 0xf4, 0x60, 0x71, 0x46, 0x7a, 0x50, 0x3f, 0x2d, 0x3d,
|
||||
0x70, 0xde, 0xc0, 0xc5, 0x34, 0xb0, 0x65, 0xf9, 0x7e, 0x07, 0x77, 0x14, 0x43, 0x61, 0xae, 0x1c,
|
||||
0x0a, 0x53, 0x9c, 0xe2, 0xfc, 0x73, 0x0e, 0x56, 0x3b, 0x69, 0xcd, 0xd9, 0xf3, 0xf9, 0xa1, 0xe4,
|
||||
0x0c, 0x27, 0x47, 0xca, 0x64, 0x04, 0xe4, 0x0a, 0xb4, 0x39, 0xb1, 0x40, 0xd7, 0x8a, 0x05, 0xba,
|
||||
0x78, 0xc1, 0xf9, 0x32, 0x6a, 0xce, 0x87, 0xa2, 0x6e, 0xc0, 0x4a, 0xae, 0xe0, 0x0e, 0x7d, 0x7e,
|
||||
0x28, 0x68, 0xaa, 0xa8, 0xb8, 0x4b, 0x24, 0xff, 0xf5, 0x0c, 0xdd, 0x86, 0xe5, 0xac, 0x42, 0x06,
|
||||
0xaa, 0x70, 0xd6, 0x25, 0x42, 0x46, 0xe5, 0x34, 0x48, 0x2b, 0x67, 0x91, 0x40, 0x58, 0x15, 0x04,
|
||||
0x22, 0x4f, 0x66, 0xa0, 0x40, 0x66, 0x9c, 0x3f, 0x19, 0x60, 0x67, 0x01, 0x3a, 0x63, 0x1b, 0x51,
|
||||
0xf0, 0xcb, 0x5c, 0xd9, 0x2f, 0xd7, 0xa1, 0x81, 0x23, 0xbf, 0x1b, 0x62, 0x8d, 0x5b, 0x53, 0xe1,
|
||||
0x56, 0xc9, 0x14, 0x6e, 0x1f, 0x80, 0x3d, 0xa2, 0x92, 0x69, 0x0c, 0xde, 0x9c, 0xc8, 0x25, 0xf3,
|
||||
0xa0, 0x70, 0x21, 0xe3, 0x94, 0xcc, 0xf9, 0xcd, 0xdc, 0xa8, 0xcc, 0x29, 0xc4, 0x9e, 0x25, 0x99,
|
||||
0xfd, 0x04, 0x1a, 0xfa, 0x2b, 0x14, 0xc5, 0x55, 0x29, 0xed, 0xbb, 0x55, 0xd7, 0xaa, 0x3a, 0x74,
|
||||
0x33, 0x67, 0xc6, 0x8f, 0x23, 0x1e, 0x1f, 0xbb, 0x36, 0x1b, 0x49, 0xda, 0x1e, 0xac, 0x94, 0x15,
|
||||
0xd0, 0x0a, 0x98, 0x47, 0xf8, 0x58, 0xdb, 0x58, 0xfc, 0x14, 0xe9, 0xff, 0x95, 0xc0, 0x8e, 0xae,
|
||||
0xfa, 0xd7, 0x4e, 0xcc, 0xa7, 0x7d, 0xea, 0x2a, 0xed, 0xef, 0xcd, 0x7d, 0x64, 0x38, 0x5f, 0x1a,
|
||||
0xb0, 0xb2, 0x1b, 0xd3, 0xe1, 0x3b, 0xa7, 0x52, 0x07, 0x1a, 0x39, 0x5e, 0x9c, 0x46, 0x6f, 0x41,
|
||||
0x36, 0x2d, 0xa9, 0x5e, 0x82, 0x7a, 0x10, 0xd3, 0xa1, 0xe7, 0x87, 0xa1, 0x0c, 0x2c, 0x41, 0x11,
|
||||
0x63, 0x3a, 0xdc, 0x0e, 0x43, 0xe7, 0x35, 0xac, 0xed, 0x62, 0xd6, 0x8b, 0x49, 0xf7, 0xdd, 0x93,
|
||||
0xfc, 0x94, 0xfa, 0x5b, 0x48, 0xa0, 0x66, 0x29, 0x81, 0x3a, 0x5f, 0x18, 0xf0, 0x5e, 0xe9, 0xe4,
|
||||
0xb3, 0xa0, 0xe3, 0x87, 0x45, 0xcc, 0x2a, 0x70, 0x4c, 0xe9, 0x7f, 0xf2, 0x58, 0xf5, 0x65, 0xfd,
|
||||
0x95, 0x73, 0xf7, 0x45, 0xce, 0xd9, 0x8b, 0xe9, 0x81, 0x64, 0x97, 0xe7, 0xc7, 0xcc, 0xfe, 0x62,
|
||||
0xc0, 0xd5, 0x09, 0x67, 0x9c, 0xe5, 0xcb, 0xcb, 0x8d, 0xf5, 0xdc, 0xb4, 0xc6, 0xda, 0x2c, 0x37,
|
||||
0xd6, 0xd5, 0x7d, 0x67, 0x6d, 0x42, 0xdf, 0xf9, 0xa5, 0x09, 0xcd, 0x7d, 0x4e, 0x63, 0xff, 0x00,
|
||||
0xef, 0xd0, 0xa8, 0x4f, 0x0e, 0x44, 0xda, 0x4e, 0xf9, 0xba, 0x21, 0x3f, 0x3a, 0x63, 0xe4, 0xd7,
|
||||
0xa1, 0xe1, 0xf7, 0x7a, 0x98, 0x31, 0xd1, 0xbe, 0xe8, 0x6c, 0x64, 0xb9, 0xb6, 0x92, 0x3d, 0x11,
|
||||
0x22, 0xf4, 0x0d, 0x58, 0x65, 0xb8, 0x17, 0x63, 0xee, 0x8d, 0x34, 0x35, 0x82, 0x97, 0xd5, 0xc4,
|
||||
0x76, 0xaa, 0x2d, 0x08, 0x7e, 0xc2, 0xf0, 0xfe, 0xfe, 0x27, 0x1a, 0xc5, 0x7a, 0x24, 0xe8, 0x55,
|
||||
0x37, 0xe9, 0x1d, 0x61, 0x9e, 0x2f, 0x0f, 0xa0, 0x44, 0x12, 0x8a, 0x97, 0xc1, 0x8a, 0x29, 0xe5,
|
||||
0x32, 0xa7, 0xcb, 0x5a, 0x6e, 0xb9, 0x75, 0x21, 0x10, 0x69, 0x4b, 0xef, 0xda, 0xd9, 0x7e, 0xaa,
|
||||
0x6b, 0xb8, 0x1e, 0x89, 0x1e, 0xb5, 0xb3, 0xfd, 0xf4, 0xe3, 0x28, 0x18, 0x52, 0x12, 0x71, 0x99,
|
||||
0xe0, 0x2d, 0x37, 0x2f, 0x12, 0x9f, 0xc7, 0x94, 0x25, 0x3c, 0x41, 0x3f, 0x64, 0x72, 0xb7, 0x5c,
|
||||
0x5b, 0xcb, 0x9e, 0x1f, 0x0f, 0xb1, 0xa8, 0x29, 0x09, 0xc3, 0xde, 0x2b, 0x12, 0xf3, 0xc4, 0x0f,
|
||||
0xbd, 0x43, 0xca, 0xb8, 0xcc, 0xf1, 0x75, 0x77, 0x29, 0x61, 0xf8, 0x85, 0x12, 0x3f, 0xa2, 0x8c,
|
||||
0x8b, 0x6b, 0xc4, 0xf8, 0x40, 0xd4, 0x08, 0x5b, 0x6e, 0xa3, 0x47, 0xa2, 0x47, 0xeb, 0x85, 0x34,
|
||||
0x09, 0xbc, 0x61, 0x4c, 0x5f, 0x91, 0x00, 0xc7, 0xb2, 0xcb, 0xb3, 0xdc, 0xa6, 0x94, 0xee, 0x69,
|
||||
0xa1, 0xf3, 0x0f, 0x13, 0x56, 0x14, 0x59, 0x7b, 0x4c, 0xbb, 0x29, 0x6a, 0xaf, 0x80, 0xd5, 0x0b,
|
||||
0x13, 0xd1, 0xf7, 0x68, 0xc8, 0x5a, 0xee, 0x48, 0x20, 0x4c, 0x9f, 0xaf, 0x77, 0x31, 0xee, 0x93,
|
||||
0x37, 0xda, 0x45, 0xcb, 0xa3, 0x82, 0x27, 0xc5, 0xf9, 0xd2, 0x6c, 0x8e, 0x95, 0xe6, 0xc0, 0xe7,
|
||||
0xbe, 0xae, 0x97, 0x35, 0x59, 0x2f, 0x2d, 0x21, 0x51, 0xa5, 0x72, 0xac, 0x02, 0xce, 0x57, 0x54,
|
||||
0xc0, 0x1c, 0x25, 0x58, 0x28, 0x52, 0x82, 0x62, 0x4c, 0x2d, 0x96, 0x73, 0xcc, 0x23, 0x58, 0x4a,
|
||||
0x3d, 0xd0, 0x93, 0x60, 0x94, 0x6e, 0xaa, 0xe8, 0xc7, 0x64, 0x66, 0xce, 0xa3, 0xd6, 0x6d, 0xb2,
|
||||
0x02, 0x88, 0xcb, 0x14, 0xc2, 0x3a, 0x15, 0x85, 0x28, 0xd1, 0x57, 0x38, 0x0d, 0x7d, 0xcd, 0xd3,
|
||||
0x01, 0xbb, 0x48, 0x07, 0x3e, 0x81, 0x95, 0x1f, 0x25, 0x38, 0x3e, 0x7e, 0x4c, 0xbb, 0x6c, 0x36,
|
||||
0x1f, 0xb7, 0xa1, 0xae, 0x1d, 0x95, 0x56, 0x8e, 0x6c, 0xec, 0xfc, 0xcd, 0x80, 0xa6, 0x8c, 0xeb,
|
||||
0xe7, 0x3e, 0x3b, 0x4a, 0x9f, 0x81, 0x52, 0x2f, 0x1b, 0x45, 0x2f, 0x9f, 0xb2, 0xf1, 0xa9, 0x78,
|
||||
0xc3, 0x30, 0xab, 0xde, 0x30, 0x2a, 0x08, 0x55, 0xad, 0x92, 0x50, 0x95, 0x3a, 0xa9, 0xf9, 0xb1,
|
||||
0x4e, 0xea, 0x2b, 0x03, 0x56, 0x73, 0x36, 0x3a, 0x4b, 0x66, 0x2d, 0x58, 0x76, 0xae, 0x6c, 0xd9,
|
||||
0xfb, 0xc5, 0x8a, 0x63, 0x56, 0xb9, 0x3a, 0x57, 0x71, 0x52, 0x1b, 0x17, 0xaa, 0xce, 0x13, 0x58,
|
||||
0x16, 0x9c, 0xe0, 0x7c, 0xdc, 0xf9, 0x57, 0x03, 0x16, 0x1f, 0xd3, 0xae, 0x74, 0x64, 0x1e, 0x43,
|
||||
0x46, 0xf1, 0x7d, 0x6c, 0x05, 0xcc, 0x80, 0x0c, 0x74, 0x99, 0x10, 0x3f, 0x45, 0x8c, 0x31, 0xee,
|
||||
0xc7, 0x7c, 0xf4, 0xc2, 0x27, 0x18, 0xa3, 0x90, 0xc8, 0x47, 0xa2, 0x4b, 0x50, 0xc7, 0x51, 0xa0,
|
||||
0x26, 0x35, 0x2d, 0xc7, 0x51, 0x20, 0xa7, 0xce, 0xa7, 0xd3, 0x5a, 0x83, 0xf9, 0x21, 0x1d, 0xbd,
|
||||
0xca, 0xa9, 0x81, 0xb3, 0x06, 0xe8, 0x21, 0xe6, 0x8f, 0x69, 0x57, 0x78, 0x25, 0x35, 0x8f, 0xf3,
|
||||
0xe7, 0x39, 0xd9, 0x05, 0x8d, 0xc4, 0x67, 0x71, 0xb0, 0x03, 0x4d, 0x55, 0x17, 0x3f, 0xa3, 0x5d,
|
||||
0x2f, 0x4a, 0x52, 0xa3, 0xd8, 0x52, 0xf8, 0x98, 0x76, 0x9f, 0x25, 0x03, 0x74, 0x07, 0x2e, 0x92,
|
||||
0x48, 0xe4, 0x5e, 0x59, 0xaa, 0x33, 0x4d, 0x65, 0xa5, 0x15, 0x12, 0xa5, 0x45, 0x5c, 0xab, 0xdf,
|
||||
0x82, 0x65, 0x1c, 0xbd, 0x4c, 0x70, 0x82, 0x33, 0x55, 0x65, 0xb3, 0xa6, 0x16, 0x6b, 0x3d, 0x51,
|
||||
0x92, 0x7d, 0x76, 0xe4, 0xb1, 0x90, 0x72, 0xa6, 0x73, 0xa2, 0x25, 0x24, 0xfb, 0x42, 0x80, 0x3e,
|
||||
0x02, 0x4b, 0x2c, 0x57, 0xd0, 0x52, 0xdd, 0xcc, 0xe5, 0x2a, 0x68, 0x69, 0x7f, 0xbb, 0xf5, 0xcf,
|
||||
0xd4, 0x0f, 0x26, 0x02, 0x44, 0xf3, 0xfb, 0x80, 0xb0, 0x23, 0x5d, 0xd2, 0x40, 0x89, 0x76, 0x09,
|
||||
0x3b, 0x72, 0x7e, 0x0a, 0x97, 0xf2, 0xef, 0x43, 0x84, 0x71, 0xd2, 0x3b, 0x4f, 0x9a, 0xf3, 0x3b,
|
||||
0x03, 0xda, 0x55, 0x07, 0xfc, 0x07, 0xd9, 0xdd, 0xd6, 0xaf, 0x6c, 0x00, 0x39, 0xb3, 0x43, 0x69,
|
||||
0x1c, 0xa0, 0x50, 0x42, 0x6b, 0x87, 0x0e, 0x86, 0x34, 0xc2, 0x11, 0x97, 0x19, 0x8b, 0xa1, 0xcd,
|
||||
0xe2, 0x7e, 0x7a, 0x30, 0xae, 0xa8, 0x6d, 0xd5, 0x7e, 0xbf, 0x52, 0xbf, 0xa4, 0xec, 0x5c, 0x40,
|
||||
0x2f, 0x65, 0x17, 0x34, 0x32, 0xc5, 0xce, 0xa1, 0x1f, 0x45, 0x38, 0x44, 0x5b, 0x13, 0xde, 0x0c,
|
||||
0xab, 0x94, 0xd3, 0x33, 0x6f, 0x54, 0x9e, 0xb9, 0xcf, 0x63, 0x12, 0x1d, 0xa4, 0x26, 0x76, 0x2e,
|
||||
0xa0, 0xe7, 0x60, 0xe7, 0x1e, 0x6e, 0xd0, 0xad, 0x2a, 0x4b, 0x8d, 0xbf, 0xec, 0xb4, 0x4f, 0xf2,
|
||||
0x85, 0x73, 0x01, 0xf5, 0xa1, 0x59, 0x78, 0x59, 0x44, 0x1b, 0x27, 0x35, 0x5f, 0xf9, 0xe7, 0xbc,
|
||||
0xf6, 0xd7, 0x67, 0xd0, 0xcc, 0x6e, 0xff, 0x73, 0x65, 0xb0, 0xb1, 0xa7, 0xb9, 0xbb, 0x13, 0x36,
|
||||
0x99, 0xf4, 0x88, 0xd8, 0xbe, 0x37, 0xfb, 0x82, 0xec, 0xf0, 0x60, 0xf4, 0x91, 0x2a, 0xa0, 0x6e,
|
||||
0x4f, 0xef, 0x30, 0xd5, 0x69, 0x1b, 0xb3, 0xb6, 0xa2, 0xce, 0x05, 0xb4, 0x07, 0x56, 0xd6, 0x0c,
|
||||
0xa2, 0xf7, 0xab, 0x16, 0x96, 0x7b, 0xc5, 0x19, 0x9c, 0x53, 0x68, 0xa7, 0xaa, 0x9d, 0x53, 0xd5,
|
||||
0xeb, 0x55, 0x3b, 0xa7, 0xb2, 0x37, 0x73, 0x2e, 0xa0, 0x44, 0xc6, 0x4e, 0x29, 0xba, 0xd1, 0x9d,
|
||||
0x69, 0xfe, 0x2d, 0xa4, 0x99, 0xf6, 0xe6, 0xac, 0xea, 0xd9, 0xb1, 0xbf, 0x18, 0xbd, 0x6a, 0x17,
|
||||
0x7a, 0x27, 0x74, 0xef, 0xa4, 0xad, 0xaa, 0x5a, 0xb9, 0xf6, 0xb7, 0xde, 0x61, 0x45, 0x0e, 0x93,
|
||||
0x68, 0xff, 0x90, 0xbe, 0x56, 0x64, 0x31, 0x89, 0x7d, 0x91, 0x0b, 0x2b, 0x0e, 0xd7, 0x21, 0x3c,
|
||||
0xae, 0x3a, 0xf1, 0xf0, 0x13, 0x56, 0x64, 0x87, 0x7b, 0x00, 0x0f, 0x31, 0x7f, 0x8a, 0x79, 0x2c,
|
||||
0x6c, 0x7d, 0x6b, 0x52, 0x9e, 0xd2, 0x0a, 0xe9, 0x51, 0xb7, 0xa7, 0xea, 0x65, 0x07, 0x74, 0xc1,
|
||||
0xde, 0x39, 0xc4, 0xbd, 0xa3, 0x47, 0xd8, 0x0f, 0xf9, 0x21, 0xaa, 0x5e, 0x99, 0xd3, 0x98, 0x00,
|
||||
0xf9, 0x2a, 0xc5, 0xf4, 0x8c, 0xad, 0xaf, 0x16, 0xf4, 0xff, 0xe1, 0xcf, 0x68, 0x80, 0xff, 0xfb,
|
||||
0x53, 0xf0, 0x1e, 0x58, 0x59, 0x3b, 0x56, 0x1d, 0xe1, 0xe5, 0x6e, 0x6d, 0x5a, 0x84, 0x7f, 0x0a,
|
||||
0x56, 0x46, 0x6c, 0xab, 0x77, 0x2c, 0xf7, 0x06, 0xed, 0x9b, 0x53, 0xb4, 0xb2, 0xdb, 0x3e, 0x83,
|
||||
0x7a, 0x4a, 0x44, 0xd1, 0x8d, 0x49, 0xe9, 0x28, 0xbf, 0xf3, 0x94, 0xbb, 0xfe, 0x0c, 0xec, 0x1c,
|
||||
0x4b, 0xab, 0x2e, 0x40, 0xe3, 0xec, 0xae, 0x7d, 0x7b, 0xaa, 0xde, 0xff, 0x46, 0x40, 0xde, 0xff,
|
||||
0xf6, 0xa7, 0x5b, 0x07, 0x84, 0x1f, 0x26, 0x5d, 0x61, 0xd9, 0xbb, 0x4a, 0xf3, 0x0e, 0xa1, 0xfa,
|
||||
0xd7, 0xdd, 0xf4, 0x96, 0x77, 0xe5, 0x4e, 0x77, 0xa5, 0x9d, 0x86, 0xdd, 0xee, 0x82, 0x1c, 0x7e,
|
||||
0xf0, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xda, 0xb6, 0x87, 0xda, 0xce, 0x22, 0x00, 0x00,
|
||||
// 2344 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xdd, 0x6f, 0xdc, 0x58,
|
||||
0x15, 0xaf, 0xe3, 0x49, 0x32, 0x3e, 0x9e, 0xc9, 0xc7, 0xdd, 0x2c, 0x4c, 0xa7, 0x5d, 0x9a, 0xba,
|
||||
0xdb, 0x36, 0x20, 0x9a, 0x96, 0x2c, 0x8b, 0x16, 0x04, 0x48, 0x69, 0xd2, 0x8f, 0xb4, 0xdb, 0x2a,
|
||||
0x38, 0x55, 0x25, 0x56, 0x08, 0xe3, 0x19, 0xdf, 0x99, 0xdc, 0x8d, 0xc7, 0x77, 0xea, 0x7b, 0xdd,
|
||||
0x36, 0x45, 0x42, 0xf0, 0xc0, 0x03, 0x68, 0x25, 0x04, 0xaa, 0xc4, 0x3f, 0xc0, 0x0b, 0xfb, 0x0f,
|
||||
0x20, 0xf1, 0xc2, 0x0b, 0x8f, 0x3c, 0xf1, 0xce, 0xff, 0x82, 0xee, 0x87, 0x3d, 0xb6, 0xc7, 0x93,
|
||||
0x99, 0x26, 0x41, 0x48, 0xf0, 0x36, 0xf7, 0xdc, 0x73, 0x3f, 0x7c, 0xce, 0xef, 0x9c, 0xdf, 0x39,
|
||||
0x77, 0x60, 0x95, 0x44, 0x01, 0x7e, 0xed, 0x75, 0x29, 0x8d, 0x83, 0xcd, 0x61, 0x4c, 0x39, 0x45,
|
||||
0x68, 0x40, 0xc2, 0x97, 0x09, 0x53, 0xa3, 0x4d, 0x39, 0xdf, 0x6e, 0x74, 0xe9, 0x60, 0x40, 0x23,
|
||||
0x25, 0x6b, 0x2f, 0x91, 0x88, 0xe3, 0x38, 0xf2, 0x43, 0x3d, 0x6e, 0xe4, 0x57, 0x38, 0xff, 0xaa,
|
||||
0x81, 0xb5, 0x27, 0x56, 0xed, 0x45, 0x3d, 0x8a, 0x1c, 0x68, 0x74, 0x69, 0x18, 0xe2, 0x2e, 0x27,
|
||||
0x34, 0xda, 0xdb, 0x6d, 0x19, 0xeb, 0xc6, 0x86, 0xe9, 0x16, 0x64, 0xa8, 0x05, 0x8b, 0x3d, 0x82,
|
||||
0xc3, 0x60, 0x6f, 0xb7, 0x35, 0x27, 0xa7, 0xd3, 0x21, 0xfa, 0x00, 0x40, 0x5d, 0x30, 0xf2, 0x07,
|
||||
0xb8, 0x65, 0xae, 0x1b, 0x1b, 0x96, 0x6b, 0x49, 0xc9, 0x53, 0x7f, 0x80, 0xc5, 0x42, 0x39, 0xd8,
|
||||
0xdb, 0x6d, 0xd5, 0xd4, 0x42, 0x3d, 0x44, 0x77, 0xc1, 0xe6, 0xc7, 0x43, 0xec, 0x0d, 0xfd, 0xd8,
|
||||
0x1f, 0xb0, 0xd6, 0xfc, 0xba, 0xb9, 0x61, 0x6f, 0x5d, 0xdd, 0x2c, 0x7c, 0x9a, 0xfe, 0xa6, 0xc7,
|
||||
0xf8, 0xf8, 0xb9, 0x1f, 0x26, 0x78, 0xdf, 0x27, 0xb1, 0x0b, 0x62, 0xd5, 0xbe, 0x5c, 0x84, 0x76,
|
||||
0xa1, 0xa1, 0x0e, 0xd7, 0x9b, 0x2c, 0xcc, 0xba, 0x89, 0x2d, 0x97, 0xe9, 0x5d, 0xae, 0xea, 0x5d,
|
||||
0x70, 0xe0, 0xc5, 0xf4, 0x15, 0x6b, 0x2d, 0xca, 0x8b, 0xda, 0x5a, 0xe6, 0xd2, 0x57, 0x4c, 0x7c,
|
||||
0x25, 0xa7, 0xdc, 0x0f, 0x95, 0x42, 0x5d, 0x2a, 0x58, 0x52, 0x22, 0xa7, 0x3f, 0x86, 0x79, 0xc6,
|
||||
0x7d, 0x8e, 0x5b, 0xd6, 0xba, 0xb1, 0xb1, 0xb4, 0x75, 0xa5, 0xf2, 0x02, 0xd2, 0xe2, 0x07, 0x42,
|
||||
0xcd, 0x55, 0xda, 0xe8, 0x63, 0xf8, 0xaa, 0xba, 0xbe, 0x1c, 0x7a, 0x3d, 0x9f, 0x84, 0x5e, 0x8c,
|
||||
0x7d, 0x46, 0xa3, 0x16, 0x48, 0x43, 0xae, 0x91, 0x6c, 0xcd, 0x7d, 0x9f, 0x84, 0xae, 0x9c, 0x43,
|
||||
0x0e, 0x34, 0x09, 0xf3, 0xfc, 0x84, 0x53, 0x4f, 0xce, 0xb7, 0xec, 0x75, 0x63, 0xa3, 0xee, 0xda,
|
||||
0x84, 0x6d, 0x27, 0x9c, 0xca, 0x63, 0xd0, 0x13, 0x58, 0x4d, 0x18, 0x8e, 0xbd, 0x82, 0x79, 0x1a,
|
||||
0xb3, 0x9a, 0x67, 0x59, 0xac, 0xdd, 0xcb, 0x99, 0xe8, 0x9b, 0x80, 0x86, 0x38, 0x0a, 0x48, 0xd4,
|
||||
0xd7, 0x3b, 0x4a, 0x3b, 0x34, 0xa5, 0x1d, 0x56, 0xf4, 0x8c, 0xd4, 0x17, 0xe6, 0x70, 0x7e, 0x6d,
|
||||
0x00, 0xdc, 0x97, 0xf8, 0x90, 0x77, 0xf9, 0x7e, 0x0a, 0x11, 0x12, 0xf5, 0xa8, 0x84, 0x97, 0xbd,
|
||||
0xf5, 0xc1, 0xe6, 0x38, 0x86, 0x37, 0x33, 0x4c, 0x6a, 0x04, 0x49, 0x78, 0xb6, 0x60, 0x31, 0xc0,
|
||||
0x21, 0xe6, 0x38, 0x90, 0xd0, 0xab, 0xbb, 0xe9, 0x10, 0x5d, 0x01, 0xbb, 0x1b, 0x63, 0x61, 0x39,
|
||||
0x4e, 0x34, 0xf6, 0x6a, 0x2e, 0x28, 0xd1, 0x33, 0x32, 0xc0, 0xce, 0x5f, 0x6a, 0xd0, 0x38, 0xc0,
|
||||
0xfd, 0x01, 0x8e, 0xb8, 0xba, 0xc9, 0x2c, 0x50, 0x5f, 0x07, 0x7b, 0xe8, 0xc7, 0x9c, 0x68, 0x15,
|
||||
0x05, 0xf7, 0xbc, 0x08, 0x5d, 0x06, 0x8b, 0xe9, 0x5d, 0x77, 0xe5, 0xa9, 0xa6, 0x3b, 0x12, 0xa0,
|
||||
0x8b, 0x50, 0x8f, 0x92, 0x81, 0x32, 0x90, 0x86, 0x7c, 0x94, 0x0c, 0x24, 0x4c, 0x72, 0xc1, 0x30,
|
||||
0x5f, 0x0c, 0x86, 0x16, 0x2c, 0x76, 0x12, 0x22, 0xe3, 0x6b, 0x41, 0xcd, 0xe8, 0x21, 0xfa, 0x0a,
|
||||
0x2c, 0x44, 0x34, 0xc0, 0x7b, 0xbb, 0x1a, 0x96, 0x7a, 0x84, 0xae, 0x41, 0x53, 0x19, 0xf5, 0x25,
|
||||
0x8e, 0x19, 0xa1, 0x91, 0x06, 0xa5, 0x42, 0xf2, 0x73, 0x25, 0x3b, 0x2d, 0x2e, 0xaf, 0x80, 0x3d,
|
||||
0x8e, 0x45, 0xe8, 0x8d, 0x10, 0x78, 0x03, 0x96, 0xd5, 0xe1, 0x3d, 0x12, 0x62, 0xef, 0x08, 0x1f,
|
||||
0xb3, 0x96, 0xbd, 0x6e, 0x6e, 0x58, 0xae, 0xba, 0xd3, 0x7d, 0x12, 0xe2, 0xc7, 0xf8, 0x98, 0xe5,
|
||||
0x7d, 0xd7, 0x38, 0xd1, 0x77, 0xcd, 0xb2, 0xef, 0xd0, 0x75, 0x58, 0x62, 0x38, 0x26, 0x7e, 0x48,
|
||||
0xde, 0x60, 0x8f, 0x91, 0x37, 0xb8, 0xb5, 0x24, 0x75, 0x9a, 0x99, 0xf4, 0x80, 0xbc, 0xc1, 0xc2,
|
||||
0x0c, 0xaf, 0x62, 0xc2, 0xb1, 0x77, 0xe8, 0x47, 0x01, 0xed, 0xf5, 0x5a, 0xcb, 0xf2, 0x9c, 0x86,
|
||||
0x14, 0x3e, 0x54, 0x32, 0x74, 0x07, 0x54, 0x20, 0x79, 0x38, 0xea, 0x93, 0x08, 0x67, 0x26, 0x5b,
|
||||
0x91, 0x1f, 0x86, 0xe4, 0xdc, 0x3d, 0x39, 0xa5, 0x0d, 0xe7, 0xfc, 0xd1, 0x80, 0xf7, 0x5c, 0xdc,
|
||||
0x27, 0x8c, 0xe3, 0xf8, 0x29, 0x0d, 0xb0, 0x8b, 0x5f, 0x24, 0x98, 0x71, 0x74, 0x07, 0x6a, 0x1d,
|
||||
0x9f, 0x61, 0x0d, 0xe2, 0xcb, 0x95, 0xf6, 0x7c, 0xc2, 0xfa, 0x77, 0x7d, 0x86, 0x5d, 0xa9, 0x89,
|
||||
0xbe, 0x03, 0x8b, 0x7e, 0x10, 0xc4, 0x98, 0x31, 0x09, 0xa5, 0x49, 0x8b, 0xb6, 0x95, 0x8e, 0x9b,
|
||||
0x2a, 0xe7, 0xfc, 0x6e, 0xe6, 0xfd, 0xee, 0xfc, 0xce, 0x80, 0xb5, 0xe2, 0xcd, 0xd8, 0x90, 0x46,
|
||||
0x0c, 0xa3, 0x8f, 0x60, 0x41, 0x78, 0x2f, 0x61, 0xfa, 0x72, 0x97, 0x2a, 0xcf, 0x39, 0x90, 0x2a,
|
||||
0xae, 0x56, 0x15, 0x49, 0x98, 0x44, 0x84, 0xa7, 0x09, 0x42, 0xdd, 0xf0, 0x6a, 0x39, 0x36, 0x35,
|
||||
0x95, 0xec, 0x45, 0x84, 0xab, 0x7c, 0xe0, 0x02, 0xc9, 0x7e, 0x3b, 0x3f, 0x86, 0xb5, 0x07, 0x98,
|
||||
0xe7, 0x50, 0xa4, 0x6d, 0x35, 0x4b, 0xb0, 0x15, 0xd9, 0x63, 0xae, 0xc4, 0x1e, 0xce, 0x9f, 0x0c,
|
||||
0x78, 0xbf, 0xb4, 0xf7, 0x59, 0xbe, 0x36, 0x0b, 0x87, 0xb9, 0xb3, 0x84, 0x83, 0x59, 0x0e, 0x07,
|
||||
0xe7, 0x97, 0x06, 0x5c, 0x7a, 0x80, 0x79, 0x3e, 0xd5, 0x9c, 0xb3, 0x25, 0xd0, 0xd7, 0x00, 0xb2,
|
||||
0x14, 0xc3, 0x5a, 0xe6, 0xba, 0xb9, 0x61, 0xba, 0x39, 0x89, 0xf3, 0x1b, 0x03, 0x56, 0xc7, 0xce,
|
||||
0x2f, 0x66, 0x2a, 0xa3, 0x9c, 0xa9, 0xfe, 0x53, 0xe6, 0xf8, 0x83, 0x01, 0x97, 0xab, 0xcd, 0x71,
|
||||
0x16, 0xe7, 0xfd, 0x40, 0x2d, 0xc2, 0x02, 0xa5, 0x82, 0xc6, 0xae, 0x57, 0x31, 0xc8, 0xf8, 0x99,
|
||||
0x7a, 0x91, 0xf3, 0x85, 0x09, 0x68, 0x47, 0xa6, 0x17, 0xc5, 0x53, 0xef, 0xe0, 0x9a, 0x53, 0x17,
|
||||
0x3f, 0xa5, 0x12, 0xa7, 0x76, 0x1e, 0x25, 0xce, 0xfc, 0xa9, 0x4a, 0x9c, 0xcb, 0x60, 0x89, 0x3c,
|
||||
0xcb, 0xb8, 0x3f, 0x18, 0x4a, 0x86, 0xa9, 0xb9, 0x23, 0xc1, 0x78, 0x41, 0xb1, 0x38, 0x63, 0x41,
|
||||
0x51, 0x3f, 0x6d, 0x41, 0xe1, 0xbc, 0x86, 0xf7, 0xd2, 0xc0, 0x96, 0x84, 0xff, 0x0e, 0xee, 0x28,
|
||||
0x86, 0xc2, 0x5c, 0x39, 0x14, 0xa6, 0x38, 0xc5, 0xf9, 0xb3, 0x09, 0xab, 0x7b, 0x29, 0x4b, 0xed,
|
||||
0xfb, 0xfc, 0x50, 0x56, 0x19, 0x27, 0x47, 0xca, 0x64, 0x04, 0xe4, 0x28, 0xdd, 0x9c, 0x48, 0xe9,
|
||||
0xb5, 0x22, 0xa5, 0x17, 0x2f, 0x38, 0x5f, 0x46, 0xcd, 0xf9, 0x14, 0xb5, 0x1b, 0xb0, 0x92, 0xa3,
|
||||
0xe8, 0xa1, 0xcf, 0x0f, 0x45, 0x61, 0x2b, 0x38, 0x7a, 0x89, 0xe4, 0xbf, 0x9e, 0xa1, 0x9b, 0xb0,
|
||||
0x9c, 0x71, 0x6a, 0xa0, 0xa8, 0xb6, 0x2e, 0x11, 0x32, 0x22, 0xe0, 0x20, 0xe5, 0xda, 0x62, 0xc9,
|
||||
0x61, 0x55, 0x94, 0x1c, 0xf9, 0xf2, 0x07, 0x8a, 0xe5, 0xcf, 0x24, 0x1a, 0xb6, 0x27, 0xd2, 0xf0,
|
||||
0x5f, 0x0d, 0xb0, 0xb3, 0x90, 0x9e, 0xb1, 0x55, 0x29, 0x78, 0x72, 0xae, 0xec, 0xc9, 0xab, 0xd0,
|
||||
0xc0, 0x91, 0xdf, 0x09, 0xb1, 0x46, 0xba, 0xa9, 0x90, 0xae, 0x64, 0x0a, 0xe9, 0xf7, 0xc1, 0x1e,
|
||||
0x95, 0xab, 0x69, 0xd4, 0x5e, 0x9f, 0x58, 0xaf, 0xe6, 0x61, 0xe4, 0x42, 0x56, 0xb7, 0x32, 0xe7,
|
||||
0xb7, 0x73, 0x23, 0x62, 0x54, 0x18, 0x3f, 0x4b, 0xfa, 0xfb, 0x09, 0x34, 0xf4, 0x57, 0xa8, 0x32,
|
||||
0x5a, 0x25, 0xc1, 0xef, 0x56, 0x5d, 0xab, 0xea, 0xd0, 0xcd, 0x9c, 0x19, 0xef, 0x45, 0x3c, 0x3e,
|
||||
0x76, 0x6d, 0x36, 0x92, 0xb4, 0x3d, 0x58, 0x29, 0x2b, 0xa0, 0x15, 0x30, 0x8f, 0xf0, 0xb1, 0xb6,
|
||||
0xb1, 0xf8, 0x29, 0x08, 0xe3, 0xa5, 0x40, 0x9b, 0xae, 0x13, 0xae, 0x9c, 0x98, 0x81, 0x7b, 0xd4,
|
||||
0x55, 0xda, 0xdf, 0x9b, 0xfb, 0xc4, 0x70, 0xde, 0x1a, 0xb0, 0xb2, 0x1b, 0xd3, 0xe1, 0x3b, 0x27,
|
||||
0x5f, 0x07, 0x1a, 0xb9, 0xda, 0x3b, 0x8d, 0xf7, 0x82, 0x6c, 0x5a, 0x1a, 0xbe, 0x08, 0xf5, 0x20,
|
||||
0xa6, 0x43, 0xcf, 0x0f, 0x43, 0x19, 0x8a, 0xa2, 0x0c, 0x8d, 0xe9, 0x70, 0x3b, 0x0c, 0x9d, 0x57,
|
||||
0xb0, 0xb6, 0x8b, 0x59, 0x37, 0x26, 0x9d, 0x77, 0xa7, 0x85, 0x29, 0x8c, 0x5d, 0x48, 0xb9, 0x66,
|
||||
0x29, 0xe5, 0x3a, 0x5f, 0x18, 0xf0, 0x7e, 0xe9, 0xe4, 0xb3, 0xa0, 0xe3, 0x87, 0x45, 0xcc, 0x2a,
|
||||
0x70, 0x4c, 0xe9, 0xb1, 0xf2, 0x58, 0xf5, 0x25, 0x63, 0xcb, 0xb9, 0xbb, 0x22, 0x4b, 0xed, 0xc7,
|
||||
0xb4, 0x2f, 0xeb, 0xd1, 0xf3, 0xab, 0xe5, 0xfe, 0x6e, 0xc0, 0x07, 0x13, 0xce, 0x38, 0xcb, 0x97,
|
||||
0x97, 0x9b, 0xf7, 0xb9, 0x69, 0xcd, 0xbb, 0x59, 0x6e, 0xde, 0xab, 0x7b, 0xdb, 0xda, 0x84, 0xde,
|
||||
0xf6, 0xad, 0x09, 0xcd, 0x03, 0x4e, 0x63, 0xbf, 0x8f, 0x77, 0x68, 0xd4, 0x23, 0x7d, 0x91, 0xe8,
|
||||
0xd3, 0x0a, 0xdf, 0x90, 0x1f, 0x9d, 0xd5, 0xf0, 0x57, 0xa1, 0xe1, 0x77, 0xbb, 0x98, 0x31, 0xd1,
|
||||
0x22, 0xe9, 0x6c, 0x64, 0xb9, 0xb6, 0x92, 0x3d, 0x16, 0x22, 0xf4, 0x0d, 0x58, 0x65, 0xb8, 0x1b,
|
||||
0x63, 0xee, 0x8d, 0x34, 0x35, 0x82, 0x97, 0xd5, 0xc4, 0x76, 0xaa, 0x2d, 0x5a, 0x82, 0x84, 0xe1,
|
||||
0x83, 0x83, 0x4f, 0x35, 0x8a, 0xf5, 0x48, 0x14, 0x64, 0x9d, 0xa4, 0x7b, 0x84, 0x79, 0x9e, 0x50,
|
||||
0x40, 0x89, 0x24, 0x14, 0x2f, 0x81, 0x15, 0x53, 0xca, 0x25, 0x0b, 0x48, 0xf6, 0xb7, 0xdc, 0xba,
|
||||
0x10, 0x88, 0xb4, 0xa5, 0x77, 0xdd, 0xdb, 0x7e, 0xa2, 0x59, 0x5f, 0x8f, 0x44, 0x1f, 0xbc, 0xb7,
|
||||
0xfd, 0xe4, 0x5e, 0x14, 0x0c, 0x29, 0x89, 0xb8, 0xa4, 0x04, 0xcb, 0xcd, 0x8b, 0xc4, 0xe7, 0x31,
|
||||
0x65, 0x09, 0x4f, 0x14, 0x2c, 0x92, 0x0e, 0x2c, 0xd7, 0xd6, 0xb2, 0x67, 0xc7, 0x43, 0x2c, 0x58,
|
||||
0x28, 0x61, 0xd8, 0x7b, 0x49, 0x62, 0x9e, 0xf8, 0xa1, 0x77, 0x48, 0x19, 0x97, 0xac, 0x50, 0x77,
|
||||
0x97, 0x12, 0x86, 0x9f, 0x2b, 0xf1, 0x43, 0xca, 0xb8, 0xb8, 0x46, 0x8c, 0xfb, 0x23, 0x3a, 0xd0,
|
||||
0x23, 0xd1, 0x07, 0x76, 0x43, 0x9a, 0x04, 0xde, 0x30, 0xa6, 0x2f, 0x49, 0x80, 0x63, 0xd9, 0x49,
|
||||
0x5a, 0x6e, 0x53, 0x4a, 0xf7, 0xb5, 0xd0, 0x79, 0x5b, 0x83, 0x15, 0x55, 0xde, 0x3d, 0xa2, 0x9d,
|
||||
0x14, 0xb5, 0x97, 0xc1, 0xea, 0x86, 0x89, 0xe8, 0x94, 0x34, 0x64, 0x2d, 0x77, 0x24, 0x10, 0xa6,
|
||||
0xcf, 0x33, 0x64, 0x8c, 0x7b, 0xe4, 0xb5, 0x76, 0xd1, 0xf2, 0x88, 0x22, 0xa5, 0x38, 0x4f, 0xe6,
|
||||
0xe6, 0x18, 0x99, 0x07, 0x3e, 0xf7, 0x35, 0xc3, 0xd6, 0x24, 0xc3, 0x5a, 0x42, 0xa2, 0xc8, 0x75,
|
||||
0x8c, 0x33, 0xe7, 0x2b, 0x38, 0x33, 0x57, 0x44, 0x2c, 0x14, 0x8b, 0x88, 0x62, 0x4c, 0x2d, 0x96,
|
||||
0x73, 0xcc, 0x43, 0x58, 0x4a, 0x3d, 0xd0, 0x95, 0x60, 0x94, 0x6e, 0xaa, 0xe8, 0xe0, 0x64, 0x66,
|
||||
0xce, 0xa3, 0xd6, 0x6d, 0xb2, 0x02, 0x88, 0xcb, 0x45, 0x87, 0x75, 0xaa, 0xa2, 0xa3, 0x54, 0xf0,
|
||||
0xc2, 0x69, 0x0a, 0xde, 0x7c, 0x01, 0x61, 0xcf, 0x56, 0x40, 0x34, 0x26, 0x16, 0x10, 0x9f, 0xc2,
|
||||
0xca, 0x8f, 0x12, 0x1c, 0x1f, 0x3f, 0xa2, 0x1d, 0x36, 0x1b, 0x2a, 0xda, 0x50, 0xd7, 0xae, 0x4d,
|
||||
0xb9, 0x26, 0x1b, 0x3b, 0xff, 0x34, 0xa0, 0x29, 0x33, 0xc1, 0x33, 0x9f, 0x1d, 0xa5, 0x8f, 0x53,
|
||||
0x29, 0x2e, 0x8c, 0x22, 0x2e, 0x4e, 0xd9, 0x5c, 0x55, 0xbc, 0xac, 0x98, 0x55, 0x2f, 0x2b, 0x15,
|
||||
0x45, 0x5b, 0xad, 0xb2, 0x68, 0x2b, 0x75, 0x6b, 0xf3, 0x63, 0xdd, 0xda, 0x97, 0x06, 0xac, 0xe6,
|
||||
0x6c, 0x74, 0x96, 0x5c, 0x5c, 0xb0, 0xec, 0x5c, 0xd9, 0xb2, 0x77, 0x8b, 0x1c, 0x65, 0x56, 0x81,
|
||||
0x23, 0xc7, 0x51, 0xa9, 0x8d, 0x0b, 0x3c, 0xf5, 0x18, 0x96, 0x45, 0x15, 0x71, 0x3e, 0xee, 0xfc,
|
||||
0x87, 0x01, 0x8b, 0x8f, 0x68, 0x47, 0x3a, 0x32, 0x8f, 0x3a, 0xa3, 0x88, 0xba, 0x15, 0x30, 0x03,
|
||||
0x32, 0xd0, 0xc4, 0x22, 0x7e, 0x8a, 0xa8, 0x64, 0xdc, 0x8f, 0xf9, 0xe8, 0xdd, 0x51, 0xd4, 0x98,
|
||||
0x42, 0x22, 0x9f, 0xae, 0x2e, 0x42, 0x1d, 0x47, 0x81, 0x9a, 0xd4, 0xa5, 0x3f, 0x8e, 0x02, 0x39,
|
||||
0x75, 0x3e, 0xdd, 0xdc, 0x1a, 0xcc, 0x0f, 0xe9, 0xe8, 0xad, 0x50, 0x0d, 0x9c, 0x35, 0x40, 0x0f,
|
||||
0x30, 0x7f, 0x44, 0x3b, 0xc2, 0x2b, 0xa9, 0x79, 0x9c, 0xbf, 0xcd, 0xc9, 0x4e, 0x6b, 0x24, 0x3e,
|
||||
0x8b, 0x83, 0x1d, 0x68, 0x2a, 0x26, 0xfd, 0x9c, 0x76, 0xbc, 0x28, 0x49, 0x8d, 0x62, 0x4b, 0xe1,
|
||||
0x23, 0xda, 0x79, 0x9a, 0x0c, 0xd0, 0x2d, 0x78, 0x8f, 0x44, 0x22, 0x5b, 0x4b, 0x72, 0xcf, 0x34,
|
||||
0x95, 0x95, 0x56, 0x48, 0x94, 0xd2, 0xbe, 0x56, 0xbf, 0x01, 0xcb, 0x38, 0x7a, 0x91, 0xe0, 0x04,
|
||||
0x67, 0xaa, 0xca, 0x66, 0x4d, 0x2d, 0xd6, 0x7a, 0x82, 0xc4, 0x7d, 0x76, 0xe4, 0xb1, 0x90, 0x72,
|
||||
0xa6, 0xb3, 0xa8, 0x25, 0x24, 0x07, 0x42, 0x80, 0x3e, 0x01, 0x4b, 0x2c, 0x57, 0xd0, 0x52, 0x1d,
|
||||
0xd3, 0xa5, 0x2a, 0x68, 0x69, 0x7f, 0xbb, 0xf5, 0xcf, 0xd5, 0x0f, 0x26, 0x02, 0x44, 0x77, 0x04,
|
||||
0x01, 0x61, 0x47, 0x9a, 0x04, 0x41, 0x89, 0x76, 0x09, 0x3b, 0x72, 0x7e, 0x0a, 0x17, 0xf3, 0x6f,
|
||||
0x50, 0x84, 0x71, 0xd2, 0x3d, 0xcf, 0xc2, 0xe8, 0xf7, 0x06, 0xb4, 0xab, 0x0e, 0xf8, 0x2f, 0xd6,
|
||||
0x83, 0x5b, 0xbf, 0xb2, 0x01, 0xe4, 0xcc, 0x0e, 0xa5, 0x71, 0x80, 0x42, 0x09, 0xad, 0x1d, 0x3a,
|
||||
0x18, 0xd2, 0x08, 0x47, 0x5c, 0x66, 0x2c, 0x86, 0x36, 0x8b, 0xfb, 0xe9, 0xc1, 0xb8, 0xa2, 0xb6,
|
||||
0x55, 0xfb, 0xc3, 0x4a, 0xfd, 0x92, 0xb2, 0x73, 0x01, 0xbd, 0x90, 0x7d, 0xd3, 0xc8, 0x14, 0x3b,
|
||||
0x87, 0x7e, 0x14, 0xe1, 0x10, 0x6d, 0x4d, 0x78, 0x97, 0xac, 0x52, 0x4e, 0xcf, 0xbc, 0x56, 0x79,
|
||||
0xe6, 0x01, 0x8f, 0x49, 0xd4, 0x4f, 0x4d, 0xec, 0x5c, 0x40, 0xcf, 0xc0, 0xce, 0x3d, 0x0e, 0xa1,
|
||||
0x1b, 0x55, 0x96, 0x1a, 0x7f, 0x3d, 0x6a, 0x9f, 0xe4, 0x0b, 0xe7, 0x02, 0xea, 0x41, 0xb3, 0xf0,
|
||||
0x7a, 0x89, 0x36, 0x4e, 0x6a, 0xd7, 0xf2, 0x4f, 0x86, 0xed, 0xaf, 0xcf, 0xa0, 0x99, 0xdd, 0xfe,
|
||||
0xe7, 0xca, 0x60, 0x63, 0xcf, 0x7f, 0xb7, 0x27, 0x6c, 0x32, 0xe9, 0xa1, 0xb2, 0x7d, 0x67, 0xf6,
|
||||
0x05, 0xd9, 0xe1, 0xc1, 0xe8, 0x23, 0x55, 0x40, 0xdd, 0x9c, 0xde, 0x93, 0xaa, 0xd3, 0x36, 0x66,
|
||||
0x6d, 0x5e, 0x9d, 0x0b, 0x68, 0x1f, 0xac, 0xac, 0x7d, 0x44, 0x1f, 0x56, 0x2d, 0x2c, 0x77, 0x97,
|
||||
0x33, 0x38, 0xa7, 0xd0, 0x80, 0x55, 0x3b, 0xa7, 0xaa, 0x3b, 0xac, 0x76, 0x4e, 0x65, 0x37, 0xe7,
|
||||
0x5c, 0x40, 0x89, 0x8c, 0x9d, 0x52, 0x74, 0xa3, 0x5b, 0xd3, 0xfc, 0x5b, 0x48, 0x33, 0xed, 0xcd,
|
||||
0x59, 0xd5, 0xb3, 0x63, 0x7f, 0x31, 0x7a, 0x39, 0x2f, 0x74, 0x5b, 0xe8, 0xce, 0x49, 0x5b, 0x55,
|
||||
0x35, 0x7f, 0xed, 0x6f, 0xbd, 0xc3, 0x8a, 0x1c, 0x26, 0xd1, 0xc1, 0x21, 0x7d, 0xa5, 0xca, 0xcb,
|
||||
0x24, 0xf6, 0x45, 0x2e, 0xac, 0x38, 0x5c, 0x87, 0xf0, 0xb8, 0xea, 0xc4, 0xc3, 0x4f, 0x58, 0x91,
|
||||
0x1d, 0xee, 0x01, 0x3c, 0xc0, 0xfc, 0x09, 0xe6, 0xb1, 0xb0, 0xf5, 0x8d, 0x49, 0x79, 0x4a, 0x2b,
|
||||
0xa4, 0x47, 0xdd, 0x9c, 0xaa, 0x97, 0x1d, 0xd0, 0x01, 0x7b, 0xe7, 0x10, 0x77, 0x8f, 0x1e, 0x62,
|
||||
0x3f, 0xe4, 0x87, 0xa8, 0x7a, 0x65, 0x4e, 0x63, 0x02, 0xe4, 0xab, 0x14, 0xd3, 0x33, 0xb6, 0xbe,
|
||||
0x5c, 0xd0, 0xff, 0xd2, 0x3f, 0xa5, 0x01, 0xfe, 0xdf, 0x4f, 0xc1, 0xfb, 0x60, 0x65, 0x0d, 0x5c,
|
||||
0x75, 0x84, 0x97, 0xfb, 0xbb, 0x69, 0x11, 0xfe, 0x19, 0x58, 0x59, 0x61, 0x5b, 0xbd, 0x63, 0xb9,
|
||||
0x37, 0x68, 0x5f, 0x9f, 0xa2, 0x95, 0xdd, 0xf6, 0x29, 0xd4, 0xd3, 0x42, 0x14, 0x5d, 0x9b, 0x94,
|
||||
0x8e, 0xf2, 0x3b, 0x4f, 0xb9, 0xeb, 0xcf, 0xc0, 0xce, 0x55, 0x69, 0xd5, 0x04, 0x34, 0x5e, 0xdd,
|
||||
0xb5, 0x6f, 0x4e, 0xd5, 0xfb, 0xff, 0x08, 0xc8, 0xbb, 0xdf, 0xfe, 0x6c, 0xab, 0x4f, 0xf8, 0x61,
|
||||
0xd2, 0x11, 0x96, 0xbd, 0xad, 0x34, 0x6f, 0x11, 0xaa, 0x7f, 0xdd, 0x4e, 0x6f, 0x79, 0x5b, 0xee,
|
||||
0x74, 0x5b, 0xda, 0x69, 0xd8, 0xe9, 0x2c, 0xc8, 0xe1, 0x47, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff,
|
||||
0x4f, 0x5f, 0xf8, 0xb7, 0x64, 0x23, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -1106,8 +1106,9 @@ type RetrieveRequest struct {
|
||||
Limit int64 `protobuf:"varint,11,opt,name=limit,proto3" json:"limit,omitempty"`
|
||||
IgnoreGrowing bool `protobuf:"varint,12,opt,name=ignoreGrowing,proto3" json:"ignoreGrowing,omitempty"`
|
||||
IsCount bool `protobuf:"varint,13,opt,name=is_count,json=isCount,proto3" json:"is_count,omitempty"`
|
||||
ReduceStopForBest bool `protobuf:"varint,14,opt,name=reduce_stop_for_best,json=reduceStopForBest,proto3" json:"reduce_stop_for_best,omitempty"`
|
||||
IterationExtensionReduceRate int64 `protobuf:"varint,14,opt,name=iteration_extension_reduce_rate,json=iterationExtensionReduceRate,proto3" json:"iteration_extension_reduce_rate,omitempty"`
|
||||
Username string `protobuf:"bytes,15,opt,name=username,proto3" json:"username,omitempty"`
|
||||
ReduceStopForBest bool `protobuf:"varint,16,opt,name=reduce_stop_for_best,json=reduceStopForBest,proto3" json:"reduce_stop_for_best,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -1229,11 +1230,11 @@ func (m *RetrieveRequest) GetIsCount() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *RetrieveRequest) GetReduceStopForBest() bool {
|
||||
func (m *RetrieveRequest) GetIterationExtensionReduceRate() int64 {
|
||||
if m != nil {
|
||||
return m.ReduceStopForBest
|
||||
return m.IterationExtensionReduceRate
|
||||
}
|
||||
return false
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *RetrieveRequest) GetUsername() string {
|
||||
@ -1243,6 +1244,13 @@ func (m *RetrieveRequest) GetUsername() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *RetrieveRequest) GetReduceStopForBest() bool {
|
||||
if m != nil {
|
||||
return m.ReduceStopForBest
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type RetrieveResults struct {
|
||||
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
|
||||
@ -1999,126 +2007,128 @@ func init() {
|
||||
func init() { proto.RegisterFile("internal.proto", fileDescriptor_41f4a519b878ee3b) }
|
||||
|
||||
var fileDescriptor_41f4a519b878ee3b = []byte{
|
||||
// 1935 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x72, 0x1c, 0x49,
|
||||
0x11, 0xa6, 0xe7, 0x7f, 0x72, 0x46, 0xa3, 0x51, 0x59, 0x36, 0x6d, 0x7b, 0x77, 0xad, 0x1d, 0xfe,
|
||||
0xc4, 0x12, 0x6b, 0x2d, 0xda, 0xd8, 0x35, 0x07, 0x02, 0xc2, 0x52, 0xdb, 0x8a, 0x89, 0x1d, 0x1b,
|
||||
0xb9, 0xc7, 0x6c, 0x04, 0x5c, 0x3a, 0x6a, 0xba, 0x4b, 0xa3, 0xc2, 0xdd, 0x5d, 0xad, 0xaa, 0x6a,
|
||||
0xc9, 0xf2, 0x99, 0x1b, 0x11, 0xdc, 0xb8, 0x10, 0x01, 0x6f, 0xc0, 0x99, 0x80, 0x0b, 0x6f, 0xc0,
|
||||
0x8b, 0xf0, 0x06, 0x7b, 0x22, 0xea, 0xa7, 0x67, 0x7a, 0x46, 0x23, 0x21, 0xcb, 0xfc, 0x2c, 0xb7,
|
||||
0xce, 0x2f, 0xb3, 0xb2, 0x2a, 0xb3, 0xb2, 0xbe, 0xca, 0x6a, 0xe8, 0xd1, 0x54, 0x12, 0x9e, 0xe2,
|
||||
0xf8, 0x61, 0xc6, 0x99, 0x64, 0xe8, 0x76, 0x42, 0xe3, 0xd3, 0x5c, 0x18, 0xe9, 0x61, 0xa1, 0xbc,
|
||||
0xd7, 0x0d, 0x59, 0x92, 0xb0, 0xd4, 0xc0, 0xf7, 0xba, 0x22, 0x3c, 0x26, 0x09, 0x36, 0xd2, 0xe0,
|
||||
0x3e, 0xdc, 0x3d, 0x20, 0xf2, 0x25, 0x4d, 0xc8, 0x4b, 0x1a, 0xbe, 0xda, 0x3f, 0xc6, 0x69, 0x4a,
|
||||
0x62, 0x9f, 0x9c, 0xe4, 0x44, 0xc8, 0xc1, 0xfb, 0x70, 0xff, 0x80, 0xc8, 0xb1, 0xc4, 0x92, 0x0a,
|
||||
0x49, 0x43, 0xb1, 0xa4, 0xbe, 0x0d, 0xb7, 0x0e, 0x88, 0xf4, 0xa2, 0x25, 0xf8, 0x4b, 0x68, 0x3d,
|
||||
0x67, 0x11, 0x19, 0xa6, 0x47, 0x0c, 0x7d, 0x0e, 0x4d, 0x1c, 0x45, 0x9c, 0x08, 0xe1, 0x3a, 0x5b,
|
||||
0xce, 0x76, 0x67, 0xf7, 0xbd, 0x87, 0x0b, 0x6b, 0xb4, 0x2b, 0x7b, 0x6c, 0x6c, 0xfc, 0xc2, 0x18,
|
||||
0x21, 0xa8, 0x71, 0x16, 0x13, 0xb7, 0xb2, 0xe5, 0x6c, 0xb7, 0x7d, 0xfd, 0x3d, 0xf8, 0x15, 0xc0,
|
||||
0x30, 0xa5, 0xf2, 0x10, 0x73, 0x9c, 0x08, 0x74, 0x07, 0x1a, 0xa9, 0x9a, 0xc5, 0xd3, 0x8e, 0xab,
|
||||
0xbe, 0x95, 0x90, 0x07, 0x5d, 0x21, 0x31, 0x97, 0x41, 0xa6, 0xed, 0xdc, 0xca, 0x56, 0x75, 0xbb,
|
||||
0xb3, 0xfb, 0xe1, 0xca, 0x69, 0xbf, 0x20, 0xe7, 0x5f, 0xe2, 0x38, 0x27, 0x87, 0x98, 0x72, 0xbf,
|
||||
0xa3, 0x87, 0x19, 0xef, 0x83, 0x5f, 0x00, 0x8c, 0x25, 0xa7, 0xe9, 0x74, 0x44, 0x85, 0x54, 0x73,
|
||||
0x9d, 0x2a, 0x3b, 0x15, 0x44, 0x75, 0xbb, 0xed, 0x5b, 0x09, 0x7d, 0x0a, 0x0d, 0x21, 0xb1, 0xcc,
|
||||
0x85, 0x5e, 0x67, 0x67, 0xf7, 0xfe, 0xca, 0x59, 0xc6, 0xda, 0xc4, 0xb7, 0xa6, 0x83, 0x3f, 0x55,
|
||||
0x60, 0x73, 0x21, 0xab, 0x36, 0x6f, 0xe8, 0x13, 0xa8, 0x4d, 0xb0, 0x20, 0x57, 0x26, 0xea, 0x99,
|
||||
0x98, 0xee, 0x61, 0x41, 0x7c, 0x6d, 0xa9, 0xb2, 0x14, 0x4d, 0x86, 0x9e, 0x9e, 0xbd, 0xea, 0xeb,
|
||||
0x6f, 0x34, 0x80, 0x6e, 0xc8, 0xe2, 0x98, 0x84, 0x92, 0xb2, 0x74, 0xe8, 0xb9, 0x55, 0xad, 0x5b,
|
||||
0xc0, 0x94, 0x4d, 0x86, 0xb9, 0xa4, 0x46, 0x14, 0x6e, 0x6d, 0xab, 0xaa, 0x6c, 0xca, 0x18, 0xfa,
|
||||
0x3e, 0xf4, 0x25, 0xc7, 0xa7, 0x24, 0x0e, 0x24, 0x4d, 0x88, 0x90, 0x38, 0xc9, 0xdc, 0xfa, 0x96,
|
||||
0xb3, 0x5d, 0xf3, 0xd7, 0x0d, 0xfe, 0xb2, 0x80, 0xd1, 0x0e, 0xdc, 0x9a, 0xe6, 0x98, 0xe3, 0x54,
|
||||
0x12, 0x52, 0xb2, 0x6e, 0x68, 0x6b, 0x34, 0x53, 0xcd, 0x07, 0xfc, 0x00, 0x36, 0x94, 0x19, 0xcb,
|
||||
0x65, 0xc9, 0xbc, 0xa9, 0xcd, 0xfb, 0x56, 0x31, 0x33, 0x1e, 0xfc, 0xd9, 0x81, 0xdb, 0x4b, 0xf9,
|
||||
0x12, 0x19, 0x4b, 0x05, 0xb9, 0x41, 0xc2, 0x6e, 0xb2, 0x61, 0xe8, 0x11, 0xd4, 0xd5, 0x97, 0x70,
|
||||
0xab, 0xd7, 0x2d, 0x25, 0x63, 0x3f, 0xf8, 0xa3, 0x03, 0x68, 0x9f, 0x13, 0x2c, 0xc9, 0xe3, 0x98,
|
||||
0xe2, 0x77, 0xd8, 0xe7, 0x6f, 0x42, 0x33, 0x9a, 0x04, 0x29, 0x4e, 0x8a, 0x03, 0xd1, 0x88, 0x26,
|
||||
0xcf, 0x71, 0x42, 0xd0, 0xf7, 0x60, 0x7d, 0xbe, 0xb1, 0xc6, 0xa0, 0xaa, 0x0d, 0x7a, 0x73, 0x58,
|
||||
0x1b, 0x6e, 0x42, 0x1d, 0xab, 0x35, 0xb8, 0x35, 0xad, 0x36, 0xc2, 0x40, 0x40, 0xdf, 0xe3, 0x2c,
|
||||
0xfb, 0x4f, 0xad, 0x6e, 0x36, 0x69, 0xb5, 0x3c, 0xe9, 0x1f, 0x1c, 0xd8, 0x78, 0x1c, 0x4b, 0xc2,
|
||||
0xbf, 0xa6, 0x49, 0xf9, 0x5b, 0xa5, 0xd8, 0xb5, 0x61, 0x1a, 0x91, 0xd7, 0xff, 0xcb, 0x05, 0xbe,
|
||||
0x0f, 0x70, 0x44, 0x49, 0x1c, 0x19, 0x1b, 0xb3, 0xca, 0xb6, 0x46, 0xb4, 0xba, 0x38, 0xfe, 0xf5,
|
||||
0x2b, 0x8e, 0x7f, 0x63, 0xc5, 0xf1, 0x77, 0xa1, 0xa9, 0x9d, 0x0c, 0x3d, 0x7d, 0xe8, 0xaa, 0x7e,
|
||||
0x21, 0x2a, 0xf2, 0x24, 0xaf, 0x25, 0xc7, 0x05, 0x79, 0xb6, 0xae, 0x4d, 0x9e, 0x7a, 0x98, 0x25,
|
||||
0xcf, 0x7f, 0xd4, 0x60, 0x6d, 0x4c, 0x30, 0x0f, 0x8f, 0x6f, 0x9e, 0xbc, 0x4d, 0xa8, 0x73, 0x72,
|
||||
0x32, 0xe3, 0x36, 0x23, 0xcc, 0x22, 0xae, 0x5e, 0x11, 0x71, 0xed, 0x1a, 0x84, 0x57, 0x5f, 0x41,
|
||||
0x78, 0x7d, 0xa8, 0x46, 0x22, 0xd6, 0x09, 0x6b, 0xfb, 0xea, 0x53, 0xd1, 0x54, 0x16, 0xe3, 0x90,
|
||||
0x1c, 0xb3, 0x38, 0x22, 0x3c, 0x98, 0x72, 0x96, 0x1b, 0x9a, 0xea, 0xfa, 0xfd, 0x92, 0xe2, 0x40,
|
||||
0xe1, 0xe8, 0x11, 0xb4, 0x22, 0x11, 0x07, 0xf2, 0x3c, 0x23, 0x6e, 0x6b, 0xcb, 0xd9, 0xee, 0x5d,
|
||||
0x12, 0xa6, 0x27, 0xe2, 0x97, 0xe7, 0x19, 0xf1, 0x9b, 0x91, 0xf9, 0x40, 0x9f, 0xc0, 0xa6, 0x20,
|
||||
0x9c, 0xe2, 0x98, 0xbe, 0x21, 0x51, 0x40, 0x5e, 0x67, 0x3c, 0xc8, 0x62, 0x9c, 0xba, 0x6d, 0x3d,
|
||||
0x11, 0x9a, 0xeb, 0x9e, 0xbc, 0xce, 0xf8, 0x61, 0x8c, 0x53, 0xb4, 0x0d, 0x7d, 0x96, 0xcb, 0x2c,
|
||||
0x97, 0x81, 0xde, 0x37, 0x11, 0xd0, 0xc8, 0x05, 0x1d, 0x51, 0xcf, 0xe0, 0x4f, 0x35, 0x3c, 0x8c,
|
||||
0x2e, 0x63, 0xe6, 0xee, 0xdb, 0x31, 0xf3, 0xda, 0x6a, 0x66, 0x46, 0x3d, 0xa8, 0xa4, 0x27, 0x6e,
|
||||
0x4f, 0xe7, 0xbb, 0x92, 0x9e, 0xa8, 0xdd, 0x91, 0x2c, 0x7b, 0xe5, 0xae, 0x9b, 0xdd, 0x51, 0xdf,
|
||||
0xe8, 0x03, 0x80, 0x84, 0x48, 0x4e, 0x43, 0x15, 0xab, 0xdb, 0xd7, 0xc9, 0x2d, 0x21, 0xe8, 0xdb,
|
||||
0xb0, 0x46, 0xa7, 0x29, 0xe3, 0xe4, 0x80, 0xb3, 0x33, 0x9a, 0x4e, 0xdd, 0x8d, 0x2d, 0x67, 0xbb,
|
||||
0xe5, 0x2f, 0x82, 0xe8, 0x1e, 0xb4, 0x72, 0xa1, 0x9a, 0x99, 0x84, 0xb8, 0x48, 0xfb, 0x98, 0xc9,
|
||||
0x83, 0xbf, 0x97, 0xaa, 0x4d, 0xe4, 0xb1, 0x14, 0xff, 0xad, 0x7b, 0x61, 0x56, 0xa2, 0xd5, 0x72,
|
||||
0x89, 0x3e, 0x80, 0x8e, 0x09, 0xcf, 0x94, 0x42, 0xed, 0x42, 0xc4, 0x0f, 0xa0, 0x93, 0xe6, 0x49,
|
||||
0x70, 0x92, 0x13, 0x4e, 0x89, 0xb0, 0x87, 0x17, 0xd2, 0x3c, 0x79, 0x61, 0x10, 0x74, 0x0b, 0xea,
|
||||
0x92, 0x65, 0xc1, 0x2b, 0x7b, 0x76, 0x55, 0x1e, 0xbf, 0x40, 0x3f, 0x86, 0x7b, 0x82, 0xe0, 0x98,
|
||||
0x44, 0x81, 0x20, 0xd3, 0x84, 0xa4, 0x72, 0xe8, 0x89, 0x40, 0xe8, 0xb0, 0x49, 0xe4, 0x36, 0xf5,
|
||||
0xee, 0xbb, 0xc6, 0x62, 0x3c, 0x33, 0x18, 0x5b, 0xbd, 0xaa, 0x83, 0xd0, 0x34, 0x69, 0x0b, 0xc3,
|
||||
0x5a, 0xba, 0x9b, 0x41, 0x73, 0xd5, 0x6c, 0xc0, 0x8f, 0xc0, 0x9d, 0xc6, 0x6c, 0x82, 0xe3, 0xe0,
|
||||
0xc2, 0xac, 0x6e, 0x5b, 0x4f, 0x76, 0xc7, 0xe8, 0xc7, 0x4b, 0x53, 0xaa, 0xf0, 0x44, 0x4c, 0x43,
|
||||
0x12, 0x05, 0x93, 0x98, 0x4d, 0x5c, 0xd0, 0x55, 0x0c, 0x06, 0xda, 0x8b, 0xd9, 0x44, 0x55, 0xaf,
|
||||
0x35, 0x50, 0x69, 0x08, 0x59, 0x9e, 0x4a, 0xb7, 0xa3, 0x23, 0xed, 0x19, 0xfc, 0x79, 0x9e, 0xec,
|
||||
0x2b, 0x14, 0x7d, 0x0b, 0xd6, 0xac, 0x25, 0x3b, 0x3a, 0x12, 0x44, 0xea, 0xba, 0xad, 0xfa, 0x5d,
|
||||
0x03, 0xfe, 0x4c, 0x63, 0xe8, 0x50, 0x91, 0xa9, 0x90, 0x8f, 0xa7, 0x53, 0x4e, 0xa6, 0x58, 0x1d,
|
||||
0x66, 0x5d, 0xaf, 0x9d, 0xdd, 0xef, 0x3e, 0x5c, 0xd9, 0x0d, 0x3f, 0xdc, 0x5f, 0xb4, 0xf6, 0x97,
|
||||
0x87, 0x0f, 0x4e, 0x60, 0x7d, 0xc9, 0x46, 0xf1, 0x07, 0xb7, 0x5d, 0x87, 0x2a, 0x7f, 0xdb, 0x72,
|
||||
0x2e, 0x60, 0x68, 0x0b, 0x3a, 0x82, 0xf0, 0x53, 0x1a, 0x1a, 0x13, 0xc3, 0x5b, 0x65, 0x48, 0xf1,
|
||||
0xae, 0x64, 0x12, 0xc7, 0xcf, 0x5f, 0xd8, 0x92, 0x29, 0xc4, 0xc1, 0x5f, 0x6b, 0xb0, 0xee, 0xab,
|
||||
0x12, 0x21, 0xa7, 0xe4, 0xff, 0x89, 0x33, 0x2f, 0xe3, 0xae, 0xc6, 0x5b, 0x71, 0x57, 0x73, 0x25,
|
||||
0x77, 0x7d, 0x07, 0x7a, 0xc9, 0x69, 0x18, 0x96, 0x78, 0xa8, 0xa5, 0x79, 0x68, 0x4d, 0xa1, 0xff,
|
||||
0xb2, 0xf9, 0x6c, 0xbf, 0x1d, 0xc5, 0xc1, 0x25, 0x14, 0xb7, 0x09, 0xf5, 0x98, 0x26, 0xb4, 0xa8,
|
||||
0x50, 0x23, 0x5c, 0x24, 0xad, 0xee, 0x2a, 0xd2, 0xba, 0x0b, 0x2d, 0x2a, 0x6c, 0x81, 0xaf, 0x69,
|
||||
0x83, 0x26, 0x15, 0xa6, 0xb2, 0x77, 0x60, 0x93, 0x93, 0x28, 0x0f, 0x49, 0x20, 0xd4, 0x51, 0x3f,
|
||||
0x62, 0x3c, 0x98, 0x10, 0x21, 0x35, 0x97, 0xb6, 0xfc, 0x0d, 0xa3, 0x1b, 0x4b, 0x96, 0x3d, 0x65,
|
||||
0x7c, 0x4f, 0x15, 0x43, 0x99, 0x00, 0xd7, 0x97, 0x08, 0xf0, 0xab, 0x6a, 0xb9, 0x78, 0xbe, 0x06,
|
||||
0x14, 0xf8, 0x11, 0x54, 0x69, 0x64, 0xba, 0xaa, 0xce, 0xae, 0xbb, 0xe8, 0xc7, 0x3e, 0x3e, 0x87,
|
||||
0x9e, 0xf0, 0x95, 0x11, 0xfa, 0x29, 0x74, 0x6c, 0x21, 0x44, 0x58, 0x62, 0x5d, 0x64, 0x9d, 0xdd,
|
||||
0x0f, 0x56, 0x8e, 0xd1, 0x95, 0xe1, 0x61, 0x89, 0x7d, 0xd3, 0x15, 0x09, 0xf5, 0x8d, 0x7e, 0x02,
|
||||
0xf7, 0x2f, 0x12, 0x23, 0xb7, 0xe9, 0x88, 0xdc, 0x86, 0xae, 0xad, 0xbb, 0xcb, 0xcc, 0x58, 0xe4,
|
||||
0x2b, 0x42, 0x3f, 0x84, 0xcd, 0x12, 0x35, 0xce, 0x07, 0x36, 0x35, 0x37, 0x96, 0x68, 0x73, 0x3e,
|
||||
0xe4, 0x2a, 0x72, 0x6c, 0x5d, 0x49, 0x8e, 0xff, 0x7e, 0xb2, 0xfa, 0xca, 0x81, 0xf6, 0x88, 0xe1,
|
||||
0x48, 0xf7, 0xaa, 0x37, 0xd8, 0xf6, 0xf7, 0xa0, 0x3d, 0x5b, 0xbd, 0xe5, 0x8d, 0x39, 0xa0, 0xb4,
|
||||
0xb3, 0x76, 0xd3, 0xf6, 0xa8, 0xa5, 0xfe, 0xb3, 0xd4, 0x47, 0xd6, 0x16, 0xfb, 0xc8, 0x07, 0xd0,
|
||||
0xa1, 0x6a, 0x41, 0x41, 0x86, 0xe5, 0xb1, 0xa1, 0x8e, 0xb6, 0x0f, 0x1a, 0x3a, 0x54, 0x88, 0x6a,
|
||||
0x34, 0x0b, 0x03, 0xdd, 0x68, 0x36, 0xae, 0xdd, 0x68, 0x5a, 0x27, 0xba, 0xd1, 0xfc, 0xb5, 0x03,
|
||||
0xa0, 0x03, 0x57, 0x65, 0x79, 0xd1, 0xa9, 0x73, 0x13, 0xa7, 0x8a, 0xd3, 0xd4, 0xc5, 0xc4, 0x49,
|
||||
0x8c, 0xe5, 0x7c, 0x6f, 0x85, 0x4d, 0x0e, 0x4a, 0xf3, 0xc4, 0x37, 0x2a, 0xbb, 0xaf, 0x62, 0xf0,
|
||||
0x5b, 0x07, 0x40, 0x17, 0xa7, 0x59, 0xc6, 0x32, 0xb9, 0x3a, 0x57, 0xb7, 0xe0, 0x95, 0xc5, 0xd4,
|
||||
0xed, 0x15, 0xa9, 0xbb, 0xe2, 0xcd, 0x39, 0x2b, 0x8f, 0x79, 0xf0, 0x36, 0xbb, 0xfa, 0x7b, 0xf0,
|
||||
0x3b, 0x07, 0xba, 0x76, 0x75, 0x66, 0x49, 0x0b, 0xbb, 0xec, 0x2c, 0xef, 0xb2, 0x6e, 0x59, 0x12,
|
||||
0xc6, 0xcf, 0x03, 0x41, 0xdf, 0x14, 0x37, 0x17, 0x18, 0x68, 0x4c, 0xdf, 0x10, 0xc5, 0x64, 0x3a,
|
||||
0x25, 0xec, 0x4c, 0x14, 0x37, 0x97, 0x4a, 0x03, 0x3b, 0x13, 0x8a, 0x4d, 0x39, 0x09, 0x49, 0x2a,
|
||||
0xe3, 0xf3, 0x20, 0x61, 0x11, 0x3d, 0xa2, 0x24, 0xd2, 0xd5, 0xd0, 0xf2, 0xfb, 0x85, 0xe2, 0x99,
|
||||
0xc5, 0xd5, 0x53, 0x1e, 0xd9, 0x9f, 0x45, 0xc5, 0x1f, 0xa7, 0x67, 0x62, 0x7a, 0x83, 0xaa, 0x55,
|
||||
0x29, 0x36, 0x7e, 0x54, 0x21, 0x9a, 0x9f, 0x3c, 0x6d, 0x7f, 0x01, 0x53, 0x9d, 0xe7, 0x8c, 0xdf,
|
||||
0x4d, 0x1e, 0x6b, 0x7e, 0x09, 0x51, 0x2b, 0x8f, 0xc8, 0x11, 0xce, 0xe3, 0xf2, 0x3d, 0x50, 0x33,
|
||||
0xf7, 0x80, 0x55, 0x2c, 0xfc, 0x84, 0xe8, 0xed, 0x73, 0x12, 0x91, 0x54, 0x52, 0x1c, 0xeb, 0x5f,
|
||||
0x5b, 0x65, 0x4a, 0x76, 0x16, 0x29, 0x19, 0x7d, 0x0c, 0x88, 0xa4, 0x21, 0x3f, 0xcf, 0x54, 0x05,
|
||||
0x65, 0x58, 0x88, 0x33, 0xc6, 0x23, 0xfb, 0x0a, 0xdc, 0x98, 0x69, 0x0e, 0xad, 0x02, 0xdd, 0x81,
|
||||
0x86, 0x24, 0x29, 0x4e, 0xa5, 0x3d, 0x63, 0x56, 0xb2, 0x37, 0x88, 0xc8, 0x33, 0xc2, 0x6d, 0x4e,
|
||||
0x9b, 0x54, 0x8c, 0x95, 0xa8, 0xde, 0x90, 0xe2, 0x18, 0xef, 0x7e, 0xf6, 0xf9, 0xdc, 0x7d, 0xdd,
|
||||
0xbc, 0x21, 0x0d, 0x5c, 0xf8, 0x1e, 0x3c, 0x81, 0x8d, 0x11, 0x15, 0xf2, 0x90, 0xc5, 0x34, 0x3c,
|
||||
0xbf, 0x71, 0x6f, 0x31, 0xf8, 0x8d, 0x03, 0xa8, 0xec, 0xc7, 0xfe, 0x82, 0x99, 0xdf, 0x1a, 0xce,
|
||||
0xf5, 0x6f, 0x8d, 0x0f, 0xa1, 0x9b, 0x69, 0x37, 0x01, 0x4d, 0x8f, 0x58, 0xb1, 0x7b, 0x1d, 0x83,
|
||||
0xa9, 0xdc, 0x0a, 0xf5, 0xf2, 0x55, 0xc9, 0x0c, 0x38, 0x8b, 0x89, 0xd9, 0xbc, 0xb6, 0xdf, 0x56,
|
||||
0x88, 0xaf, 0x80, 0xc1, 0x14, 0xee, 0x8e, 0x8f, 0xd9, 0xd9, 0x3e, 0x4b, 0x8f, 0xe8, 0x34, 0xe7,
|
||||
0x9a, 0x0a, 0xdf, 0xe1, 0x57, 0x82, 0x0b, 0xcd, 0x0c, 0x4b, 0x75, 0xa6, 0xec, 0x1e, 0x15, 0xe2,
|
||||
0xe0, 0xf7, 0x0e, 0xdc, 0x5b, 0x35, 0xd3, 0xbb, 0x84, 0x7f, 0x00, 0x6b, 0xa1, 0x71, 0x67, 0xbc,
|
||||
0x5d, 0xff, 0x17, 0xe5, 0xe2, 0xb8, 0xc1, 0x13, 0xa8, 0xf9, 0x58, 0x12, 0xb4, 0x03, 0x15, 0x2e,
|
||||
0xf5, 0x0a, 0x7a, 0xbb, 0x0f, 0x2e, 0x61, 0x0a, 0x65, 0xa8, 0xdf, 0x9d, 0x15, 0x2e, 0x51, 0x17,
|
||||
0x1c, 0xae, 0x23, 0x75, 0x7c, 0x87, 0x7f, 0xf4, 0x17, 0x07, 0x5a, 0x85, 0x1a, 0x6d, 0xc0, 0x9a,
|
||||
0xe7, 0x8d, 0xf6, 0x67, 0x5c, 0xd5, 0xff, 0x06, 0xea, 0x43, 0xd7, 0xf3, 0x46, 0x87, 0x45, 0xdf,
|
||||
0xd7, 0x77, 0x50, 0x17, 0x5a, 0x9e, 0x37, 0xd2, 0xe4, 0xd3, 0xaf, 0x58, 0xe9, 0x69, 0x9c, 0x8b,
|
||||
0xe3, 0x7e, 0x75, 0xe6, 0x20, 0xc9, 0xb0, 0x71, 0x50, 0x43, 0x6b, 0xd0, 0xf6, 0x9e, 0x8d, 0x86,
|
||||
0xa9, 0x20, 0x5c, 0xf6, 0xeb, 0x56, 0xf4, 0x48, 0x4c, 0x24, 0xe9, 0x37, 0xd0, 0x3a, 0x74, 0xbc,
|
||||
0x67, 0xa3, 0xbd, 0x3c, 0x7e, 0xa5, 0xee, 0xb1, 0x7e, 0x53, 0xeb, 0x5f, 0x8c, 0xcc, 0x53, 0xa4,
|
||||
0xdf, 0xd2, 0xee, 0x5f, 0x8c, 0xd4, 0xe3, 0xe8, 0xbc, 0xdf, 0xb6, 0x83, 0x7f, 0x9e, 0x69, 0x5f,
|
||||
0xb0, 0xf7, 0xe8, 0x97, 0x9f, 0x4d, 0xa9, 0x3c, 0xce, 0x27, 0x2a, 0x5f, 0x3b, 0x26, 0xf4, 0x8f,
|
||||
0x29, 0xb3, 0x5f, 0x3b, 0x45, 0xf8, 0x3b, 0x3a, 0x1b, 0x33, 0x31, 0x9b, 0x4c, 0x1a, 0x1a, 0xf9,
|
||||
0xf4, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4c, 0x78, 0xf5, 0x94, 0x43, 0x17, 0x00, 0x00,
|
||||
// 1966 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcb, 0x6e, 0x1c, 0xb9,
|
||||
0x15, 0x4d, 0xf5, 0xbb, 0x6f, 0xb7, 0x5a, 0x2d, 0x5a, 0x76, 0xca, 0x8f, 0x19, 0x6b, 0x2a, 0x2f,
|
||||
0x65, 0x82, 0xb1, 0x26, 0x1a, 0xcc, 0x38, 0x8b, 0x20, 0x81, 0xa5, 0xb2, 0x85, 0xc6, 0xb4, 0x1d,
|
||||
0xb9, 0xda, 0x19, 0x20, 0xd9, 0x14, 0xd8, 0x55, 0x54, 0x8b, 0x71, 0x55, 0xb1, 0x44, 0xb2, 0x64,
|
||||
0xcb, 0xbb, 0x00, 0xd9, 0x05, 0xc8, 0x2e, 0x9b, 0x00, 0xc9, 0x1f, 0x64, 0x3d, 0xc8, 0x2a, 0x7f,
|
||||
0x90, 0x1f, 0xc9, 0x1f, 0xcc, 0x2a, 0xe0, 0xa3, 0xfa, 0xa5, 0x96, 0x22, 0xcb, 0x79, 0xcc, 0xec,
|
||||
0x8a, 0xe7, 0x1e, 0x5e, 0x92, 0x97, 0x97, 0x87, 0x97, 0x05, 0x3d, 0x9a, 0x49, 0xc2, 0x33, 0x9c,
|
||||
0x3c, 0xc8, 0x39, 0x93, 0x0c, 0xdd, 0x4c, 0x69, 0x72, 0x5a, 0x08, 0xd3, 0x7a, 0x50, 0x1a, 0xef,
|
||||
0x74, 0x23, 0x96, 0xa6, 0x2c, 0x33, 0xf0, 0x9d, 0xae, 0x88, 0x8e, 0x49, 0x8a, 0x4d, 0xcb, 0xbb,
|
||||
0x0b, 0xb7, 0x0f, 0x88, 0x7c, 0x41, 0x53, 0xf2, 0x82, 0x46, 0x2f, 0xf7, 0x8f, 0x71, 0x96, 0x91,
|
||||
0x24, 0x20, 0x27, 0x05, 0x11, 0xd2, 0x7b, 0x0f, 0xee, 0x1e, 0x10, 0x39, 0x92, 0x58, 0x52, 0x21,
|
||||
0x69, 0x24, 0x96, 0xcc, 0x37, 0xe1, 0xc6, 0x01, 0x91, 0x7e, 0xbc, 0x04, 0x7f, 0x01, 0xad, 0x67,
|
||||
0x2c, 0x26, 0x83, 0xec, 0x88, 0xa1, 0xcf, 0xa0, 0x89, 0xe3, 0x98, 0x13, 0x21, 0x5c, 0x67, 0xcb,
|
||||
0xd9, 0xee, 0xec, 0xde, 0x7b, 0xb0, 0x30, 0x47, 0x3b, 0xb3, 0x47, 0x86, 0x13, 0x94, 0x64, 0x84,
|
||||
0xa0, 0xc6, 0x59, 0x42, 0xdc, 0xca, 0x96, 0xb3, 0xdd, 0x0e, 0xf4, 0xb7, 0xf7, 0x1b, 0x80, 0x41,
|
||||
0x46, 0xe5, 0x21, 0xe6, 0x38, 0x15, 0xe8, 0x16, 0x34, 0x32, 0x35, 0x8a, 0xaf, 0x1d, 0x57, 0x03,
|
||||
0xdb, 0x42, 0x3e, 0x74, 0x85, 0xc4, 0x5c, 0x86, 0xb9, 0xe6, 0xb9, 0x95, 0xad, 0xea, 0x76, 0x67,
|
||||
0xf7, 0x83, 0x95, 0xc3, 0x7e, 0x4e, 0xce, 0xbe, 0xc0, 0x49, 0x41, 0x0e, 0x31, 0xe5, 0x41, 0x47,
|
||||
0x77, 0x33, 0xde, 0xbd, 0x5f, 0x01, 0x8c, 0x24, 0xa7, 0xd9, 0x64, 0x48, 0x85, 0x54, 0x63, 0x9d,
|
||||
0x2a, 0x9e, 0x5a, 0x44, 0x75, 0xbb, 0x1d, 0xd8, 0x16, 0xfa, 0x04, 0x1a, 0x42, 0x62, 0x59, 0x08,
|
||||
0x3d, 0xcf, 0xce, 0xee, 0xdd, 0x95, 0xa3, 0x8c, 0x34, 0x25, 0xb0, 0x54, 0xef, 0xaf, 0x15, 0xd8,
|
||||
0x5c, 0x88, 0xaa, 0x8d, 0x1b, 0xfa, 0x18, 0x6a, 0x63, 0x2c, 0xc8, 0xa5, 0x81, 0x7a, 0x2a, 0x26,
|
||||
0x7b, 0x58, 0x90, 0x40, 0x33, 0x55, 0x94, 0xe2, 0xf1, 0xc0, 0xd7, 0xa3, 0x57, 0x03, 0xfd, 0x8d,
|
||||
0x3c, 0xe8, 0x46, 0x2c, 0x49, 0x48, 0x24, 0x29, 0xcb, 0x06, 0xbe, 0x5b, 0xd5, 0xb6, 0x05, 0x4c,
|
||||
0x71, 0x72, 0xcc, 0x25, 0x35, 0x4d, 0xe1, 0xd6, 0xb6, 0xaa, 0x8a, 0x33, 0x8f, 0xa1, 0x1f, 0x42,
|
||||
0x5f, 0x72, 0x7c, 0x4a, 0x92, 0x50, 0xd2, 0x94, 0x08, 0x89, 0xd3, 0xdc, 0xad, 0x6f, 0x39, 0xdb,
|
||||
0xb5, 0x60, 0xdd, 0xe0, 0x2f, 0x4a, 0x18, 0xed, 0xc0, 0x8d, 0x49, 0x81, 0x39, 0xce, 0x24, 0x21,
|
||||
0x73, 0xec, 0x86, 0x66, 0xa3, 0xa9, 0x69, 0xd6, 0xe1, 0x47, 0xb0, 0xa1, 0x68, 0xac, 0x90, 0x73,
|
||||
0xf4, 0xa6, 0xa6, 0xf7, 0xad, 0x61, 0x4a, 0xf6, 0xbe, 0x74, 0xe0, 0xe6, 0x52, 0xbc, 0x44, 0xce,
|
||||
0x32, 0x41, 0xae, 0x11, 0xb0, 0xeb, 0x6c, 0x18, 0x7a, 0x08, 0x75, 0xf5, 0x25, 0xdc, 0xea, 0x55,
|
||||
0x53, 0xc9, 0xf0, 0xbd, 0xbf, 0x38, 0x80, 0xf6, 0x39, 0xc1, 0x92, 0x3c, 0x4a, 0x28, 0x7e, 0x87,
|
||||
0x7d, 0xfe, 0x36, 0x34, 0xe3, 0x71, 0x98, 0xe1, 0xb4, 0x3c, 0x10, 0x8d, 0x78, 0xfc, 0x0c, 0xa7,
|
||||
0x04, 0xfd, 0x00, 0xd6, 0x67, 0x1b, 0x6b, 0x08, 0x55, 0x4d, 0xe8, 0xcd, 0x60, 0x4d, 0xdc, 0x84,
|
||||
0x3a, 0x56, 0x73, 0x70, 0x6b, 0xda, 0x6c, 0x1a, 0x9e, 0x80, 0xbe, 0xcf, 0x59, 0xfe, 0xdf, 0x9a,
|
||||
0xdd, 0x74, 0xd0, 0xea, 0xfc, 0xa0, 0x7f, 0x76, 0x60, 0xe3, 0x51, 0x22, 0x09, 0xff, 0x9a, 0x06,
|
||||
0xe5, 0xef, 0x95, 0x72, 0xd7, 0x06, 0x59, 0x4c, 0x5e, 0xff, 0x3f, 0x27, 0xf8, 0x1e, 0xc0, 0x11,
|
||||
0x25, 0x49, 0x6c, 0x38, 0x66, 0x96, 0x6d, 0x8d, 0x68, 0x73, 0x79, 0xfc, 0xeb, 0x97, 0x1c, 0xff,
|
||||
0xc6, 0x8a, 0xe3, 0xef, 0x42, 0x53, 0x3b, 0x19, 0xf8, 0xfa, 0xd0, 0x55, 0x83, 0xb2, 0xa9, 0xc4,
|
||||
0x93, 0xbc, 0x96, 0x1c, 0x97, 0xe2, 0xd9, 0xba, 0xb2, 0x78, 0xea, 0x6e, 0x56, 0x3c, 0xff, 0x59,
|
||||
0x83, 0xb5, 0x11, 0xc1, 0x3c, 0x3a, 0xbe, 0x7e, 0xf0, 0x36, 0xa1, 0xce, 0xc9, 0xc9, 0x54, 0xdb,
|
||||
0x4c, 0x63, 0xba, 0xe2, 0xea, 0x25, 0x2b, 0xae, 0x5d, 0x41, 0xf0, 0xea, 0x2b, 0x04, 0xaf, 0x0f,
|
||||
0xd5, 0x58, 0x24, 0x3a, 0x60, 0xed, 0x40, 0x7d, 0x2a, 0x99, 0xca, 0x13, 0x1c, 0x91, 0x63, 0x96,
|
||||
0xc4, 0x84, 0x87, 0x13, 0xce, 0x0a, 0x23, 0x53, 0xdd, 0xa0, 0x3f, 0x67, 0x38, 0x50, 0x38, 0x7a,
|
||||
0x08, 0xad, 0x58, 0x24, 0xa1, 0x3c, 0xcb, 0x89, 0xdb, 0xda, 0x72, 0xb6, 0x7b, 0x17, 0x2c, 0xd3,
|
||||
0x17, 0xc9, 0x8b, 0xb3, 0x9c, 0x04, 0xcd, 0xd8, 0x7c, 0xa0, 0x8f, 0x61, 0x53, 0x10, 0x4e, 0x71,
|
||||
0x42, 0xdf, 0x90, 0x38, 0x24, 0xaf, 0x73, 0x1e, 0xe6, 0x09, 0xce, 0xdc, 0xb6, 0x1e, 0x08, 0xcd,
|
||||
0x6c, 0x8f, 0x5f, 0xe7, 0xfc, 0x30, 0xc1, 0x19, 0xda, 0x86, 0x3e, 0x2b, 0x64, 0x5e, 0xc8, 0x50,
|
||||
0xef, 0x9b, 0x08, 0x69, 0xec, 0x82, 0x5e, 0x51, 0xcf, 0xe0, 0x4f, 0x34, 0x3c, 0x88, 0x2f, 0x52,
|
||||
0xe6, 0xee, 0xdb, 0x29, 0xf3, 0xda, 0x6a, 0x65, 0x46, 0x3d, 0xa8, 0x64, 0x27, 0x6e, 0x4f, 0xc7,
|
||||
0xbb, 0x92, 0x9d, 0xa8, 0xdd, 0x91, 0x2c, 0x7f, 0xe9, 0xae, 0x9b, 0xdd, 0x51, 0xdf, 0xe8, 0x7d,
|
||||
0x80, 0x94, 0x48, 0x4e, 0x23, 0xb5, 0x56, 0xb7, 0xaf, 0x83, 0x3b, 0x87, 0xa0, 0xef, 0xc2, 0x1a,
|
||||
0x9d, 0x64, 0x8c, 0x93, 0x03, 0xce, 0x5e, 0xd1, 0x6c, 0xe2, 0x6e, 0x6c, 0x39, 0xdb, 0xad, 0x60,
|
||||
0x11, 0x44, 0x77, 0xa0, 0x55, 0x08, 0x55, 0xcc, 0xa4, 0xc4, 0x45, 0xda, 0xc7, 0xb4, 0xed, 0xfd,
|
||||
0x63, 0x2e, 0xdb, 0x44, 0x91, 0x48, 0xf1, 0xbf, 0xba, 0x17, 0xa6, 0x29, 0x5a, 0x9d, 0x4f, 0xd1,
|
||||
0xfb, 0xd0, 0x31, 0xcb, 0x33, 0xa9, 0x50, 0x3b, 0xb7, 0xe2, 0xfb, 0xd0, 0xc9, 0x8a, 0x34, 0x3c,
|
||||
0x29, 0x08, 0xa7, 0x44, 0xd8, 0xc3, 0x0b, 0x59, 0x91, 0x3e, 0x37, 0x08, 0xba, 0x01, 0x75, 0xc9,
|
||||
0xf2, 0xf0, 0xa5, 0x3d, 0xbb, 0x2a, 0x8e, 0x9f, 0xa3, 0x9f, 0xc2, 0x1d, 0x41, 0x70, 0x42, 0xe2,
|
||||
0x50, 0x90, 0x49, 0x4a, 0x32, 0x39, 0xf0, 0x45, 0x28, 0xf4, 0xb2, 0x49, 0xec, 0x36, 0xf5, 0xee,
|
||||
0xbb, 0x86, 0x31, 0x9a, 0x12, 0x46, 0xd6, 0xae, 0xf2, 0x20, 0x32, 0x45, 0xda, 0x42, 0xb7, 0x96,
|
||||
0xae, 0x66, 0xd0, 0xcc, 0x34, 0xed, 0xf0, 0x13, 0x70, 0x27, 0x09, 0x1b, 0xe3, 0x24, 0x3c, 0x37,
|
||||
0xaa, 0xdb, 0xd6, 0x83, 0xdd, 0x32, 0xf6, 0xd1, 0xd2, 0x90, 0x6a, 0x79, 0x22, 0xa1, 0x11, 0x89,
|
||||
0xc3, 0x71, 0xc2, 0xc6, 0x2e, 0xe8, 0x2c, 0x06, 0x03, 0xed, 0x25, 0x6c, 0xac, 0xb2, 0xd7, 0x12,
|
||||
0x54, 0x18, 0x22, 0x56, 0x64, 0xd2, 0xed, 0xe8, 0x95, 0xf6, 0x0c, 0xfe, 0xac, 0x48, 0xf7, 0x15,
|
||||
0x8a, 0xbe, 0x03, 0x6b, 0x96, 0xc9, 0x8e, 0x8e, 0x04, 0x91, 0x3a, 0x6f, 0xab, 0x41, 0xd7, 0x80,
|
||||
0xbf, 0xd0, 0x18, 0x3a, 0x54, 0x62, 0x2a, 0xe4, 0xa3, 0xc9, 0x84, 0x93, 0x09, 0x56, 0x87, 0x59,
|
||||
0xe7, 0x6b, 0x67, 0xf7, 0xfb, 0x0f, 0x56, 0x56, 0xc3, 0x0f, 0xf6, 0x17, 0xd9, 0xc1, 0x72, 0x77,
|
||||
0xef, 0x04, 0xd6, 0x97, 0x38, 0x4a, 0x3f, 0xb8, 0xad, 0x3a, 0x54, 0xfa, 0xdb, 0x92, 0x73, 0x01,
|
||||
0x43, 0x5b, 0xd0, 0x11, 0x84, 0x9f, 0xd2, 0xc8, 0x50, 0x8c, 0x6e, 0xcd, 0x43, 0x4a, 0x77, 0x25,
|
||||
0x93, 0x38, 0x79, 0xf6, 0xdc, 0xa6, 0x4c, 0xd9, 0xf4, 0x7e, 0x5b, 0x87, 0xf5, 0x40, 0xa5, 0x08,
|
||||
0x39, 0x25, 0xdf, 0x24, 0xcd, 0xbc, 0x48, 0xbb, 0x1a, 0x6f, 0xa5, 0x5d, 0xcd, 0x95, 0xda, 0xf5,
|
||||
0x3d, 0xe8, 0xa5, 0xa7, 0x51, 0x34, 0xa7, 0x43, 0x2d, 0xad, 0x43, 0x6b, 0x0a, 0xfd, 0xb7, 0xc5,
|
||||
0x67, 0xfb, 0xed, 0x24, 0x0e, 0x2e, 0x90, 0xb8, 0x4d, 0xa8, 0x27, 0x34, 0xa5, 0x65, 0x86, 0x9a,
|
||||
0xc6, 0x79, 0xd1, 0xea, 0xae, 0x12, 0xad, 0xdb, 0xd0, 0xa2, 0xc2, 0x26, 0xf8, 0x9a, 0x26, 0x34,
|
||||
0xa9, 0x30, 0x99, 0xfd, 0x18, 0xee, 0x53, 0x49, 0xb8, 0x4e, 0xae, 0x90, 0xbc, 0x96, 0x24, 0x13,
|
||||
0xea, 0x8b, 0x93, 0xb8, 0x88, 0x48, 0xc8, 0xb1, 0x24, 0x56, 0x56, 0xef, 0x4d, 0x69, 0x8f, 0x4b,
|
||||
0x56, 0xa0, 0x49, 0x01, 0x96, 0x64, 0x41, 0x16, 0xd7, 0x17, 0x65, 0x11, 0xed, 0xc0, 0xa6, 0x75,
|
||||
0x27, 0x94, 0x9a, 0x1c, 0x31, 0x1e, 0x8e, 0x89, 0x90, 0x5a, 0x82, 0x5b, 0xc1, 0x86, 0xb1, 0x8d,
|
||||
0x24, 0xcb, 0x9f, 0x30, 0xbe, 0xa7, 0x9e, 0x6d, 0x5f, 0x55, 0xe7, 0x73, 0xf0, 0x6b, 0xa0, 0xa4,
|
||||
0x1f, 0x42, 0x95, 0xc6, 0xa6, 0x38, 0xeb, 0xec, 0xba, 0x8b, 0x7e, 0xec, 0x1b, 0x76, 0xe0, 0x8b,
|
||||
0x40, 0x91, 0xd0, 0xcf, 0xa1, 0x63, 0xf3, 0x29, 0xc6, 0x12, 0xeb, 0x5c, 0xed, 0xec, 0xbe, 0xbf,
|
||||
0xb2, 0x8f, 0x4e, 0x30, 0x1f, 0x4b, 0x1c, 0x98, 0xe2, 0x4a, 0xa8, 0x6f, 0xf4, 0x33, 0xb8, 0x7b,
|
||||
0x5e, 0x5f, 0xb9, 0x0d, 0x47, 0xec, 0x36, 0x74, 0x8a, 0xde, 0x5e, 0x16, 0xd8, 0x32, 0x5e, 0x31,
|
||||
0xfa, 0x31, 0x6c, 0xce, 0x29, 0xec, 0xac, 0x63, 0x53, 0x4b, 0xec, 0x9c, 0xfa, 0xce, 0xba, 0x5c,
|
||||
0xa6, 0xb1, 0xad, 0x4b, 0x35, 0xf6, 0x3f, 0xaf, 0x79, 0x5f, 0x39, 0xd0, 0x1e, 0x32, 0x1c, 0xeb,
|
||||
0x92, 0xf7, 0x1a, 0xdb, 0x7e, 0x0f, 0xda, 0xd3, 0xd9, 0x5b, 0xf9, 0x99, 0x01, 0xca, 0x3a, 0xad,
|
||||
0x5a, 0x6d, 0xa9, 0x3b, 0x57, 0xc6, 0xce, 0x95, 0xa3, 0xb5, 0xc5, 0x72, 0xf4, 0x3e, 0x74, 0xa8,
|
||||
0x9a, 0x50, 0x98, 0x63, 0x79, 0x6c, 0x14, 0xa8, 0x1d, 0x80, 0x86, 0x0e, 0x15, 0xa2, 0xea, 0xd5,
|
||||
0x92, 0xa0, 0xeb, 0xd5, 0xc6, 0x95, 0xeb, 0x55, 0xeb, 0x44, 0xd7, 0xab, 0xbf, 0x73, 0x00, 0xf4,
|
||||
0xc2, 0x55, 0x5a, 0x9e, 0x77, 0xea, 0x5c, 0xc7, 0xa9, 0x92, 0x46, 0x75, 0xbf, 0x71, 0x92, 0x60,
|
||||
0x39, 0xdb, 0x5b, 0x61, 0x83, 0x83, 0xb2, 0x22, 0x0d, 0x8c, 0xc9, 0xee, 0xab, 0xf0, 0xfe, 0xe0,
|
||||
0x00, 0xe8, 0xe4, 0x34, 0xd3, 0x58, 0xd6, 0x68, 0xe7, 0xf2, 0x4a, 0xbe, 0xb2, 0x18, 0xba, 0xbd,
|
||||
0x32, 0x74, 0x97, 0x3c, 0x5d, 0xa7, 0xe9, 0x31, 0x5b, 0xbc, 0x8d, 0xae, 0xfe, 0xf6, 0xfe, 0xe8,
|
||||
0x40, 0xd7, 0xce, 0xce, 0x4c, 0x69, 0x61, 0x97, 0x9d, 0xe5, 0x5d, 0xd6, 0x95, 0x4f, 0xca, 0xf8,
|
||||
0x59, 0x28, 0xe8, 0x9b, 0xf2, 0x02, 0x04, 0x03, 0x8d, 0xe8, 0x1b, 0xa2, 0x04, 0x51, 0x87, 0x84,
|
||||
0xbd, 0x12, 0xe5, 0x05, 0xa8, 0xc2, 0xc0, 0x5e, 0x09, 0x25, 0xca, 0x9c, 0x44, 0x24, 0x93, 0xc9,
|
||||
0x59, 0x98, 0xb2, 0x98, 0x1e, 0x51, 0x12, 0xeb, 0x6c, 0x68, 0x05, 0xfd, 0xd2, 0xf0, 0xd4, 0xe2,
|
||||
0xde, 0x97, 0xea, 0x5d, 0x6d, 0x0e, 0x54, 0xf9, 0xe3, 0xea, 0xa9, 0x98, 0x5c, 0x23, 0x6b, 0x55,
|
||||
0x88, 0x8d, 0x1f, 0x95, 0x88, 0xe6, 0x5f, 0x51, 0x3b, 0x58, 0xc0, 0x54, 0x01, 0x3b, 0xbd, 0x26,
|
||||
0x4c, 0x1c, 0x6b, 0xc1, 0x1c, 0xa2, 0x66, 0x1e, 0x93, 0x23, 0x5c, 0x24, 0xf3, 0xd7, 0x49, 0xcd,
|
||||
0x5c, 0x27, 0xd6, 0xb0, 0xf0, 0x2f, 0xa3, 0xb7, 0xcf, 0x49, 0x4c, 0x32, 0x49, 0x71, 0xa2, 0xff,
|
||||
0x90, 0xcd, 0x6b, 0xb8, 0xb3, 0xa4, 0xe1, 0x1f, 0x01, 0x22, 0x59, 0xc4, 0xcf, 0x72, 0x95, 0x41,
|
||||
0x39, 0x16, 0xe2, 0x15, 0xe3, 0xb1, 0x7d, 0x4c, 0x6e, 0x4c, 0x2d, 0x87, 0xd6, 0x80, 0x6e, 0x41,
|
||||
0x43, 0x92, 0x0c, 0x67, 0xd2, 0x9e, 0x31, 0xdb, 0xb2, 0x17, 0x91, 0x28, 0x72, 0xc2, 0x6d, 0x4c,
|
||||
0x9b, 0x54, 0x8c, 0x54, 0x53, 0x3d, 0x45, 0xc5, 0x31, 0xde, 0xfd, 0xf4, 0xb3, 0x99, 0xfb, 0xba,
|
||||
0x79, 0x8a, 0x1a, 0xb8, 0xf4, 0xed, 0x3d, 0x86, 0x8d, 0x21, 0x15, 0xf2, 0x90, 0x25, 0x34, 0x3a,
|
||||
0xbb, 0x76, 0x89, 0xe2, 0xfd, 0xde, 0x01, 0x34, 0xef, 0xc7, 0xfe, 0xc9, 0x99, 0xdd, 0x1a, 0xce,
|
||||
0xd5, 0x6f, 0x8d, 0x0f, 0xa0, 0x9b, 0x6b, 0x37, 0x21, 0xcd, 0x8e, 0x58, 0xb9, 0x7b, 0x1d, 0x83,
|
||||
0xa9, 0xd8, 0x0a, 0xf5, 0x80, 0x56, 0xc1, 0x0c, 0x39, 0x4b, 0x88, 0xd9, 0xbc, 0x76, 0xd0, 0x56,
|
||||
0x48, 0xa0, 0x00, 0x6f, 0x02, 0xb7, 0x47, 0xc7, 0xec, 0xd5, 0x3e, 0xcb, 0x8e, 0xe8, 0xa4, 0x30,
|
||||
0xf7, 0xec, 0x3b, 0xfc, 0x91, 0x70, 0xa1, 0x99, 0x63, 0xa9, 0xce, 0x94, 0xdd, 0xa3, 0xb2, 0xe9,
|
||||
0xfd, 0xc9, 0x81, 0x3b, 0xab, 0x46, 0x7a, 0x97, 0xe5, 0x1f, 0xc0, 0x5a, 0x64, 0xdc, 0x19, 0x6f,
|
||||
0x57, 0xff, 0xd3, 0xb9, 0xd8, 0xcf, 0x7b, 0x0c, 0x35, 0x5d, 0x4d, 0xec, 0x40, 0x85, 0x4b, 0x3d,
|
||||
0x83, 0xde, 0xee, 0xfd, 0x0b, 0x94, 0x42, 0x11, 0xf5, 0xf3, 0xb5, 0xc2, 0x25, 0xea, 0x82, 0xc3,
|
||||
0xf5, 0x4a, 0x9d, 0xc0, 0xe1, 0x1f, 0xfe, 0xcd, 0x81, 0x56, 0x69, 0x46, 0x1b, 0xb0, 0xe6, 0xfb,
|
||||
0xc3, 0xfd, 0xa9, 0x56, 0xf5, 0xbf, 0x85, 0xfa, 0xd0, 0xf5, 0xfd, 0xe1, 0x61, 0x59, 0x3e, 0xf6,
|
||||
0x1d, 0xd4, 0x85, 0x96, 0xef, 0x0f, 0xb5, 0xf8, 0xf4, 0x2b, 0xb6, 0xf5, 0x24, 0x29, 0xc4, 0x71,
|
||||
0xbf, 0x3a, 0x75, 0x90, 0xe6, 0xd8, 0x38, 0xa8, 0xa1, 0x35, 0x68, 0xfb, 0x4f, 0x87, 0x83, 0x4c,
|
||||
0x10, 0x2e, 0xfb, 0x75, 0xdb, 0xf4, 0x49, 0x42, 0x24, 0xe9, 0x37, 0xd0, 0x3a, 0x74, 0xfc, 0xa7,
|
||||
0xc3, 0xbd, 0x22, 0x79, 0xa9, 0xee, 0xb1, 0x7e, 0x53, 0xdb, 0x9f, 0x0f, 0xcd, 0x8b, 0xa6, 0xdf,
|
||||
0xd2, 0xee, 0x9f, 0x0f, 0xd5, 0x1b, 0xeb, 0xac, 0xdf, 0xb6, 0x9d, 0x7f, 0x99, 0x6b, 0x5f, 0xb0,
|
||||
0xf7, 0xf0, 0xd7, 0x9f, 0x4e, 0xa8, 0x3c, 0x2e, 0xc6, 0x2a, 0x5e, 0x3b, 0x66, 0xe9, 0x1f, 0x51,
|
||||
0x66, 0xbf, 0x76, 0xca, 0xe5, 0xef, 0xe8, 0x68, 0x4c, 0x9b, 0xf9, 0x78, 0xdc, 0xd0, 0xc8, 0x27,
|
||||
0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x39, 0x3a, 0x8f, 0x34, 0x8a, 0x17, 0x00, 0x00,
|
||||
}
|
||||
|
@ -237,7 +237,6 @@ func (BinaryExpr_BinaryOp) EnumDescriptor() ([]byte, []int) {
|
||||
|
||||
type GenericValue struct {
|
||||
// Types that are valid to be assigned to Val:
|
||||
//
|
||||
// *GenericValue_BoolVal
|
||||
// *GenericValue_Int64Val
|
||||
// *GenericValue_FloatVal
|
||||
@ -1298,7 +1297,6 @@ var xxx_messageInfo_AlwaysTrueExpr proto.InternalMessageInfo
|
||||
|
||||
type Expr struct {
|
||||
// Types that are valid to be assigned to Expr:
|
||||
//
|
||||
// *Expr_TermExpr
|
||||
// *Expr_UnaryExpr
|
||||
// *Expr_BinaryExpr
|
||||
@ -1670,7 +1668,6 @@ func (m *QueryPlanNode) GetLimit() int64 {
|
||||
|
||||
type PlanNode struct {
|
||||
// Types that are valid to be assigned to Node:
|
||||
//
|
||||
// *PlanNode_VectorAnns
|
||||
// *PlanNode_Predicates
|
||||
// *PlanNode_Query
|
||||
|
@ -29,7 +29,6 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type InvalidateCollMetaCacheRequest struct {
|
||||
// MsgType:
|
||||
//
|
||||
// DropCollection -> {meta cache, dml channels}
|
||||
// Other -> {meta cache}
|
||||
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
|
@ -270,6 +270,7 @@ message FieldIndexInfo {
|
||||
int64 index_size = 8;
|
||||
int64 index_version = 9;
|
||||
int64 num_rows = 10;
|
||||
string index_engine_version = 11;
|
||||
}
|
||||
|
||||
enum LoadScope {
|
||||
|
@ -1771,6 +1771,7 @@ type FieldIndexInfo struct {
|
||||
IndexSize int64 `protobuf:"varint,8,opt,name=index_size,json=indexSize,proto3" json:"index_size,omitempty"`
|
||||
IndexVersion int64 `protobuf:"varint,9,opt,name=index_version,json=indexVersion,proto3" json:"index_version,omitempty"`
|
||||
NumRows int64 `protobuf:"varint,10,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"`
|
||||
IndexEngineVersion string `protobuf:"bytes,11,opt,name=index_engine_version,json=indexEngineVersion,proto3" json:"index_engine_version,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -1871,6 +1872,13 @@ func (m *FieldIndexInfo) GetNumRows() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *FieldIndexInfo) GetIndexEngineVersion() string {
|
||||
if m != nil {
|
||||
return m.IndexEngineVersion
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type LoadSegmentsRequest struct {
|
||||
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
DstNodeID int64 `protobuf:"varint,2,opt,name=dst_nodeID,json=dstNodeID,proto3" json:"dst_nodeID,omitempty"`
|
||||
@ -4574,307 +4582,308 @@ func init() {
|
||||
func init() { proto.RegisterFile("query_coord.proto", fileDescriptor_aab7cc9a69ed26e8) }
|
||||
|
||||
var fileDescriptor_aab7cc9a69ed26e8 = []byte{
|
||||
// 4789 bytes of a gzipped FileDescriptorProto
|
||||
// 4809 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6f, 0x1c, 0x47,
|
||||
0x7a, 0xea, 0x79, 0x71, 0xe6, 0x9b, 0x57, 0xb3, 0x48, 0x4a, 0xb3, 0xb3, 0x92, 0x2c, 0xb7, 0xfc,
|
||||
0xe0, 0xca, 0x36, 0xa5, 0xa5, 0xd6, 0x5e, 0xed, 0xda, 0x86, 0x23, 0x91, 0x96, 0xcc, 0xb5, 0x4d,
|
||||
0x33, 0x4d, 0xca, 0x1b, 0x78, 0xbd, 0x3b, 0x6e, 0x4e, 0x17, 0x87, 0x0d, 0xf5, 0x63, 0xd4, 0xdd,
|
||||
0x43, 0x9a, 0x0e, 0x10, 0xe4, 0x90, 0x4b, 0x36, 0xd9, 0x20, 0x48, 0x0e, 0xc9, 0x21, 0xc8, 0x21,
|
||||
0x41, 0x80, 0x4d, 0x90, 0x5c, 0x82, 0x04, 0xc8, 0x21, 0x87, 0xdc, 0x72, 0xca, 0xeb, 0x94, 0x3f,
|
||||
0x90, 0xdc, 0x02, 0xe4, 0x92, 0x45, 0xe0, 0x5b, 0x50, 0x8f, 0x7e, 0x54, 0x77, 0x0d, 0xa7, 0xc9,
|
||||
0x91, 0xd6, 0x76, 0xb0, 0xb7, 0xe9, 0xaf, 0x1e, 0xdf, 0x57, 0x5f, 0x7d, 0xef, 0xaa, 0x1a, 0x58,
|
||||
0x7c, 0x3c, 0xc1, 0xfe, 0xc9, 0x60, 0xe8, 0x79, 0xbe, 0xb9, 0x36, 0xf6, 0xbd, 0xd0, 0x43, 0xc8,
|
||||
0xb1, 0xec, 0xa3, 0x49, 0xc0, 0xbe, 0xd6, 0x68, 0x7b, 0xbf, 0x35, 0xf4, 0x1c, 0xc7, 0x73, 0x19,
|
||||
0xac, 0xdf, 0x4a, 0xf7, 0xe8, 0x77, 0x2c, 0x37, 0xc4, 0xbe, 0x6b, 0xd8, 0x51, 0x6b, 0x30, 0x3c,
|
||||
0xc4, 0x8e, 0xc1, 0xbf, 0x1a, 0x4e, 0x30, 0xe2, 0x3f, 0x55, 0xd3, 0x08, 0x8d, 0x34, 0xaa, 0xfe,
|
||||
0xa2, 0xe5, 0x9a, 0xf8, 0xd3, 0x34, 0x48, 0xfb, 0x0d, 0x05, 0x2e, 0xee, 0x1e, 0x7a, 0xc7, 0x1b,
|
||||
0x9e, 0x6d, 0xe3, 0x61, 0x68, 0x79, 0x6e, 0xa0, 0xe3, 0xc7, 0x13, 0x1c, 0x84, 0xe8, 0x16, 0x54,
|
||||
0xf6, 0x8d, 0x00, 0xf7, 0x94, 0x6b, 0xca, 0x6a, 0x73, 0xfd, 0xf2, 0x9a, 0x40, 0x27, 0x27, 0xf0,
|
||||
0xfd, 0x60, 0x74, 0xcf, 0x08, 0xb0, 0x4e, 0x7b, 0x22, 0x04, 0x15, 0x73, 0x7f, 0x6b, 0xb3, 0x57,
|
||||
0xba, 0xa6, 0xac, 0x96, 0x75, 0xfa, 0x1b, 0x3d, 0x07, 0xed, 0x61, 0x3c, 0xf7, 0xd6, 0x66, 0xd0,
|
||||
0x2b, 0x5f, 0x2b, 0xaf, 0x96, 0x75, 0x11, 0xa8, 0xfd, 0xb8, 0x04, 0x97, 0x72, 0x64, 0x04, 0x63,
|
||||
0xcf, 0x0d, 0x30, 0xba, 0x0d, 0xb5, 0x20, 0x34, 0xc2, 0x49, 0xc0, 0x29, 0xf9, 0xba, 0x94, 0x92,
|
||||
0x5d, 0xda, 0x45, 0xe7, 0x5d, 0xf3, 0x68, 0x4b, 0x12, 0xb4, 0xe8, 0x9b, 0xb0, 0x6c, 0xb9, 0xef,
|
||||
0x63, 0xc7, 0xf3, 0x4f, 0x06, 0x63, 0xec, 0x0f, 0xb1, 0x1b, 0x1a, 0x23, 0x1c, 0xd1, 0xb8, 0x14,
|
||||
0xb5, 0xed, 0x24, 0x4d, 0xe8, 0x35, 0xb8, 0xc4, 0xf6, 0x30, 0xc0, 0xfe, 0x91, 0x35, 0xc4, 0x03,
|
||||
0xe3, 0xc8, 0xb0, 0x6c, 0x63, 0xdf, 0xc6, 0xbd, 0xca, 0xb5, 0xf2, 0x6a, 0x5d, 0x5f, 0xa1, 0xcd,
|
||||
0xbb, 0xac, 0xf5, 0x6e, 0xd4, 0x88, 0xbe, 0x01, 0xaa, 0x8f, 0x0f, 0x7c, 0x1c, 0x1c, 0x0e, 0xc6,
|
||||
0xbe, 0x37, 0xf2, 0x71, 0x10, 0xf4, 0xaa, 0x14, 0x4d, 0x97, 0xc3, 0x77, 0x38, 0x58, 0xfb, 0x33,
|
||||
0x05, 0x56, 0x08, 0x33, 0x76, 0x0c, 0x3f, 0xb4, 0x9e, 0xc2, 0x96, 0x68, 0xd0, 0x4a, 0xb3, 0xa1,
|
||||
0x57, 0xa6, 0x6d, 0x02, 0x8c, 0xf4, 0x19, 0x47, 0xe8, 0x09, 0xfb, 0x2a, 0x94, 0x54, 0x01, 0xa6,
|
||||
0xfd, 0x0b, 0x97, 0x9d, 0x34, 0x9d, 0xf3, 0xec, 0x59, 0x16, 0x67, 0x29, 0x8f, 0xf3, 0x3c, 0x3b,
|
||||
0x26, 0xe3, 0x7c, 0x45, 0xce, 0xf9, 0x7f, 0x2a, 0xc3, 0xca, 0x7b, 0x9e, 0x61, 0x26, 0x62, 0xf8,
|
||||
0xf3, 0xe7, 0xfc, 0x9b, 0x50, 0x63, 0x1a, 0xdd, 0xab, 0x50, 0x5c, 0xcf, 0x8b, 0xb8, 0xb8, 0xb6,
|
||||
0x27, 0x14, 0xee, 0x52, 0x80, 0xce, 0x07, 0xa1, 0xe7, 0xa1, 0xe3, 0xe3, 0xb1, 0x6d, 0x0d, 0x8d,
|
||||
0x81, 0x3b, 0x71, 0xf6, 0xb1, 0xdf, 0xab, 0x5e, 0x53, 0x56, 0xab, 0x7a, 0x9b, 0x43, 0xb7, 0x29,
|
||||
0x10, 0x7d, 0x02, 0xed, 0x03, 0x0b, 0xdb, 0xe6, 0x80, 0x9a, 0x84, 0xad, 0xcd, 0x5e, 0xed, 0x5a,
|
||||
0x79, 0xb5, 0xb9, 0xfe, 0xfa, 0x5a, 0xde, 0x1a, 0xad, 0x49, 0x39, 0xb2, 0x76, 0x9f, 0x0c, 0xdf,
|
||||
0x62, 0xa3, 0xdf, 0x76, 0x43, 0xff, 0x44, 0x6f, 0x1d, 0xa4, 0x40, 0xa8, 0x07, 0x0b, 0x9c, 0xbd,
|
||||
0xbd, 0x85, 0x6b, 0xca, 0x6a, 0x5d, 0x8f, 0x3e, 0xd1, 0x8b, 0xd0, 0xf5, 0x71, 0xe0, 0x4d, 0xfc,
|
||||
0x21, 0x1e, 0x8c, 0x7c, 0x6f, 0x32, 0x0e, 0x7a, 0xf5, 0x6b, 0xe5, 0xd5, 0x86, 0xde, 0x89, 0xc0,
|
||||
0x0f, 0x28, 0xb4, 0xff, 0x16, 0x2c, 0xe6, 0xb0, 0x20, 0x15, 0xca, 0x8f, 0xf0, 0x09, 0xdd, 0x88,
|
||||
0xb2, 0x4e, 0x7e, 0xa2, 0x65, 0xa8, 0x1e, 0x19, 0xf6, 0x04, 0x73, 0x56, 0xb3, 0x8f, 0xef, 0x96,
|
||||
0xee, 0x28, 0xda, 0x1f, 0x29, 0xd0, 0xd3, 0xb1, 0x8d, 0x8d, 0x00, 0x7f, 0x91, 0x5b, 0x7a, 0x11,
|
||||
0x6a, 0xae, 0x67, 0xe2, 0xad, 0x4d, 0xba, 0xa5, 0x65, 0x9d, 0x7f, 0x69, 0x9f, 0x2b, 0xb0, 0xfc,
|
||||
0x00, 0x87, 0x44, 0x0d, 0xac, 0x20, 0xb4, 0x86, 0xb1, 0x9e, 0xbf, 0x09, 0x65, 0x1f, 0x3f, 0xe6,
|
||||
0x94, 0xbd, 0x24, 0x52, 0x16, 0x9b, 0x7f, 0xd9, 0x48, 0x9d, 0x8c, 0x43, 0xcf, 0x42, 0xcb, 0x74,
|
||||
0xec, 0xc1, 0xf0, 0xd0, 0x70, 0x5d, 0x6c, 0x33, 0x45, 0x6a, 0xe8, 0x4d, 0xd3, 0xb1, 0x37, 0x38,
|
||||
0x08, 0x5d, 0x05, 0x08, 0xf0, 0xc8, 0xc1, 0x6e, 0x98, 0xd8, 0xe4, 0x14, 0x04, 0xdd, 0x80, 0xc5,
|
||||
0x03, 0xdf, 0x73, 0x06, 0xc1, 0xa1, 0xe1, 0x9b, 0x03, 0x1b, 0x1b, 0x26, 0xf6, 0x29, 0xf5, 0x75,
|
||||
0xbd, 0x4b, 0x1a, 0x76, 0x09, 0xfc, 0x3d, 0x0a, 0x46, 0xb7, 0xa1, 0x1a, 0x0c, 0xbd, 0x31, 0xa6,
|
||||
0x92, 0xd6, 0x59, 0xbf, 0x22, 0x93, 0xa1, 0x4d, 0x23, 0x34, 0x76, 0x49, 0x27, 0x9d, 0xf5, 0xd5,
|
||||
0xfe, 0xae, 0xc2, 0x54, 0xed, 0x4b, 0x6e, 0xe4, 0x52, 0xea, 0x58, 0x7d, 0x32, 0xea, 0x58, 0x2b,
|
||||
0xa4, 0x8e, 0x0b, 0xa7, 0xab, 0x63, 0x8e, 0x6b, 0x67, 0x51, 0xc7, 0xfa, 0x4c, 0x75, 0x6c, 0xc8,
|
||||
0xd4, 0x11, 0xbd, 0x0d, 0x5d, 0x16, 0x40, 0x58, 0xee, 0x81, 0x37, 0xb0, 0xad, 0x20, 0xec, 0x01,
|
||||
0x25, 0xf3, 0x4a, 0x56, 0x42, 0x4d, 0xfc, 0xe9, 0x1a, 0x43, 0xec, 0x1e, 0x78, 0x7a, 0xdb, 0x8a,
|
||||
0x7e, 0xbe, 0x67, 0x05, 0xe1, 0xfc, 0x5a, 0xfd, 0x0f, 0x89, 0x56, 0x7f, 0xd9, 0xa5, 0x27, 0xd1,
|
||||
0xfc, 0xaa, 0xa0, 0xf9, 0x7f, 0xae, 0xc0, 0xd7, 0x1e, 0xe0, 0x30, 0x26, 0x9f, 0x28, 0x32, 0xfe,
|
||||
0x92, 0xba, 0xf9, 0xbf, 0x52, 0xa0, 0x2f, 0xa3, 0x75, 0x1e, 0x57, 0xff, 0x11, 0x5c, 0x8c, 0x71,
|
||||
0x0c, 0x4c, 0x1c, 0x0c, 0x7d, 0x6b, 0x4c, 0xb7, 0x91, 0xda, 0xaa, 0xe6, 0xfa, 0x75, 0x99, 0xe0,
|
||||
0x67, 0x29, 0x58, 0x89, 0xa7, 0xd8, 0x4c, 0xcd, 0xa0, 0xfd, 0x44, 0x81, 0x15, 0x62, 0x1b, 0xb9,
|
||||
0x31, 0x23, 0x12, 0x78, 0x6e, 0xbe, 0x8a, 0x66, 0xb2, 0x94, 0x33, 0x93, 0x05, 0x78, 0x4c, 0x43,
|
||||
0xec, 0x2c, 0x3d, 0xf3, 0xf0, 0xee, 0x55, 0xa8, 0x12, 0x05, 0x8c, 0x58, 0xf5, 0x8c, 0x8c, 0x55,
|
||||
0x69, 0x64, 0xac, 0xb7, 0xe6, 0x32, 0x2a, 0x12, 0xbb, 0x3d, 0x87, 0xb8, 0x65, 0x97, 0x5d, 0x92,
|
||||
0x2c, 0xfb, 0xb7, 0x15, 0xb8, 0x94, 0x43, 0x38, 0xcf, 0xba, 0xdf, 0x80, 0x1a, 0xf5, 0x46, 0xd1,
|
||||
0xc2, 0x9f, 0x93, 0x2e, 0x3c, 0x85, 0x8e, 0x58, 0x1b, 0x9d, 0x8f, 0xd1, 0x3c, 0x50, 0xb3, 0x6d,
|
||||
0xc4, 0x4f, 0x72, 0x1f, 0x39, 0x70, 0x0d, 0x87, 0x31, 0xa0, 0xa1, 0x37, 0x39, 0x6c, 0xdb, 0x70,
|
||||
0x30, 0xfa, 0x1a, 0xd4, 0x89, 0xca, 0x0e, 0x2c, 0x33, 0xda, 0xfe, 0x05, 0xaa, 0xc2, 0x66, 0x80,
|
||||
0xae, 0x00, 0xd0, 0x26, 0xc3, 0x34, 0x7d, 0xe6, 0x42, 0x1b, 0x7a, 0x83, 0x40, 0xee, 0x12, 0x80,
|
||||
0xf6, 0x87, 0x0a, 0x5c, 0xdd, 0x3d, 0x71, 0x87, 0xdb, 0xf8, 0x78, 0xc3, 0xc7, 0x46, 0x88, 0x13,
|
||||
0xa3, 0xfd, 0x54, 0x19, 0x8f, 0xae, 0x41, 0x33, 0xa5, 0xbf, 0x5c, 0x24, 0xd3, 0x20, 0xed, 0xaf,
|
||||
0x15, 0x68, 0x11, 0x2f, 0xf2, 0x3e, 0x0e, 0x0d, 0x22, 0x22, 0xe8, 0x3b, 0xd0, 0xb0, 0x3d, 0xc3,
|
||||
0x1c, 0x84, 0x27, 0x63, 0x46, 0x4d, 0x27, 0x4b, 0x4d, 0xe2, 0x7a, 0xf6, 0x4e, 0xc6, 0x58, 0xaf,
|
||||
0xdb, 0xfc, 0x57, 0x21, 0x8a, 0xb2, 0x56, 0xa6, 0x2c, 0xb1, 0x94, 0xcf, 0x40, 0xd3, 0xc1, 0xa1,
|
||||
0x6f, 0x0d, 0x19, 0x11, 0x15, 0xba, 0x15, 0xc0, 0x40, 0x04, 0x91, 0xf6, 0x93, 0x1a, 0x5c, 0xfc,
|
||||
0xbe, 0x11, 0x0e, 0x0f, 0x37, 0x9d, 0x28, 0x8a, 0x39, 0x3f, 0x1f, 0x13, 0xbb, 0x5c, 0x4a, 0xdb,
|
||||
0xe5, 0x27, 0x66, 0xf7, 0x63, 0x1d, 0xad, 0xca, 0x74, 0x94, 0x24, 0xe6, 0x6b, 0x1f, 0x72, 0x31,
|
||||
0x4b, 0xe9, 0x68, 0x2a, 0xd8, 0xa8, 0x9d, 0x27, 0xd8, 0xd8, 0x80, 0x36, 0xfe, 0x74, 0x68, 0x4f,
|
||||
0x88, 0xbc, 0x52, 0xec, 0x2c, 0x8a, 0xb8, 0x2a, 0xc1, 0x9e, 0x36, 0x10, 0x2d, 0x3e, 0x68, 0x8b,
|
||||
0xd3, 0xc0, 0x64, 0xc1, 0xc1, 0xa1, 0x41, 0x43, 0x85, 0xe6, 0xfa, 0xb5, 0x69, 0xb2, 0x10, 0x09,
|
||||
0x10, 0x93, 0x07, 0xf2, 0x85, 0x2e, 0x43, 0x83, 0x87, 0x36, 0x5b, 0x9b, 0xbd, 0x06, 0x65, 0x5f,
|
||||
0x02, 0x40, 0x06, 0xb4, 0xb9, 0xf5, 0xe4, 0x14, 0xb2, 0x00, 0xe2, 0x0d, 0x19, 0x02, 0xf9, 0x66,
|
||||
0xa7, 0x29, 0x0f, 0x78, 0xa0, 0x13, 0xa4, 0x40, 0x24, 0xf3, 0xf7, 0x0e, 0x0e, 0x6c, 0xcb, 0xc5,
|
||||
0xdb, 0x6c, 0x87, 0x9b, 0x94, 0x08, 0x11, 0x48, 0xc2, 0xa1, 0x23, 0xec, 0x07, 0x96, 0xe7, 0xf6,
|
||||
0x5a, 0xb4, 0x3d, 0xfa, 0x94, 0x45, 0x39, 0xed, 0x73, 0x44, 0x39, 0x03, 0x58, 0xcc, 0x51, 0x2a,
|
||||
0x89, 0x72, 0xbe, 0x95, 0x8e, 0x72, 0x66, 0x6f, 0x55, 0x2a, 0x0a, 0xfa, 0xa9, 0x02, 0x2b, 0x0f,
|
||||
0xdd, 0x60, 0xb2, 0x1f, 0xb3, 0xe8, 0x8b, 0x51, 0x87, 0xac, 0x11, 0xad, 0xe4, 0x8c, 0xa8, 0xf6,
|
||||
0x3f, 0x55, 0xe8, 0xf2, 0x55, 0x10, 0xa9, 0xa1, 0x26, 0xe7, 0x32, 0x34, 0x62, 0x3f, 0xca, 0x19,
|
||||
0x92, 0x00, 0xb2, 0x36, 0xac, 0x94, 0xb3, 0x61, 0x85, 0x48, 0x8b, 0xa2, 0xa2, 0x4a, 0x2a, 0x2a,
|
||||
0xba, 0x02, 0x70, 0x60, 0x4f, 0x82, 0xc3, 0x41, 0x68, 0x39, 0x98, 0x47, 0x65, 0x0d, 0x0a, 0xd9,
|
||||
0xb3, 0x1c, 0x8c, 0xee, 0x42, 0x6b, 0xdf, 0x72, 0x6d, 0x6f, 0x34, 0x18, 0x1b, 0xe1, 0x61, 0xc0,
|
||||
0xd3, 0x62, 0xd9, 0xb6, 0xd0, 0x18, 0xf6, 0x1e, 0xed, 0xab, 0x37, 0xd9, 0x98, 0x1d, 0x32, 0x04,
|
||||
0x5d, 0x85, 0xa6, 0x3b, 0x71, 0x06, 0xde, 0xc1, 0xc0, 0xf7, 0x8e, 0x03, 0x9a, 0xfc, 0x96, 0xf5,
|
||||
0x86, 0x3b, 0x71, 0x3e, 0x38, 0xd0, 0xbd, 0x63, 0xe2, 0xc7, 0x1a, 0xc4, 0xa3, 0x05, 0xb6, 0x37,
|
||||
0x62, 0x89, 0xef, 0xec, 0xf9, 0x93, 0x01, 0x64, 0xb4, 0x89, 0xed, 0xd0, 0xa0, 0xa3, 0x1b, 0xc5,
|
||||
0x46, 0xc7, 0x03, 0xd0, 0x0b, 0xd0, 0x19, 0x7a, 0xce, 0xd8, 0xa0, 0x1c, 0xba, 0xef, 0x7b, 0x0e,
|
||||
0x55, 0xc0, 0xb2, 0x9e, 0x81, 0xa2, 0x0d, 0x68, 0x26, 0x4a, 0x10, 0xf4, 0x9a, 0x14, 0x8f, 0x26,
|
||||
0xd3, 0xd2, 0x54, 0x28, 0x4f, 0x04, 0x14, 0x62, 0x2d, 0x08, 0x88, 0x64, 0x44, 0xca, 0x1e, 0x58,
|
||||
0x9f, 0x61, 0xae, 0x68, 0x4d, 0x0e, 0xdb, 0xb5, 0x3e, 0xc3, 0x24, 0x3d, 0xb2, 0xdc, 0x00, 0xfb,
|
||||
0x61, 0x94, 0xac, 0xf6, 0xda, 0x54, 0x7c, 0xda, 0x0c, 0xca, 0x05, 0x1b, 0x6d, 0x42, 0x27, 0x08,
|
||||
0x0d, 0x3f, 0x1c, 0x8c, 0xbd, 0x80, 0x0a, 0x40, 0xaf, 0x43, 0x65, 0x3b, 0xa3, 0x92, 0x4e, 0x30,
|
||||
0x22, 0x82, 0xbd, 0xc3, 0x3b, 0xe9, 0x6d, 0x3a, 0x28, 0xfa, 0x24, 0xb3, 0x50, 0x4e, 0x24, 0xb3,
|
||||
0x74, 0x0b, 0xcd, 0x42, 0x07, 0xc5, 0xb3, 0xac, 0x92, 0x74, 0xc9, 0x30, 0x8d, 0x7d, 0x1b, 0x7f,
|
||||
0xc8, 0x2d, 0x88, 0x4a, 0x17, 0x96, 0x05, 0x6b, 0xff, 0x5d, 0x82, 0x8e, 0xc8, 0x1e, 0x62, 0x76,
|
||||
0x58, 0x56, 0x16, 0xc9, 0x7c, 0xf4, 0x49, 0x98, 0x85, 0x5d, 0x32, 0x9a, 0xa5, 0x80, 0x54, 0xe4,
|
||||
0xeb, 0x7a, 0x93, 0xc1, 0xe8, 0x04, 0x44, 0x74, 0xd9, 0xa6, 0x50, 0x3d, 0x2b, 0x53, 0x46, 0x35,
|
||||
0x28, 0x84, 0x86, 0x2a, 0x3d, 0x58, 0x88, 0xb2, 0x47, 0x26, 0xf0, 0xd1, 0x27, 0x69, 0xd9, 0x9f,
|
||||
0x58, 0x14, 0x2b, 0x13, 0xf8, 0xe8, 0x13, 0x6d, 0x42, 0x8b, 0x4d, 0x39, 0x36, 0x7c, 0xc3, 0x89,
|
||||
0xc4, 0xfd, 0x59, 0xa9, 0xc9, 0x78, 0x17, 0x9f, 0x7c, 0x48, 0xac, 0xcf, 0x8e, 0x61, 0xf9, 0x3a,
|
||||
0x13, 0x8f, 0x1d, 0x3a, 0x0a, 0xad, 0x82, 0xca, 0x66, 0x39, 0xb0, 0x6c, 0xcc, 0x15, 0x67, 0x81,
|
||||
0xa5, 0x90, 0x14, 0x7e, 0xdf, 0xb2, 0x31, 0xd3, 0x8d, 0x78, 0x09, 0x54, 0x20, 0xea, 0x4c, 0x35,
|
||||
0x28, 0x84, 0x8a, 0xc3, 0x75, 0x60, 0x56, 0x74, 0x10, 0xd9, 0x66, 0xe6, 0x40, 0x18, 0x8d, 0x9c,
|
||||
0xad, 0x34, 0x24, 0x9b, 0x38, 0x4c, 0xb9, 0x80, 0x2d, 0xc7, 0x9d, 0x38, 0x44, 0xb5, 0xb4, 0xdf,
|
||||
0xab, 0xc2, 0x12, 0xb1, 0x30, 0xdc, 0xd8, 0xcc, 0x11, 0x20, 0x5c, 0x01, 0x30, 0x83, 0x70, 0x20,
|
||||
0x58, 0xc5, 0x86, 0x19, 0x84, 0xdc, 0x7d, 0x7c, 0x27, 0xf2, 0xef, 0xe5, 0xe9, 0xe9, 0x4a, 0xc6,
|
||||
0xe2, 0xe5, 0x7d, 0xfc, 0xb9, 0xea, 0x7b, 0xd7, 0xa1, 0xcd, 0x73, 0x75, 0x21, 0xb1, 0x6c, 0x31,
|
||||
0xe0, 0xb6, 0xdc, 0x6e, 0xd7, 0xa4, 0x75, 0xc6, 0x94, 0x9f, 0x5f, 0x98, 0xcf, 0xcf, 0xd7, 0xb3,
|
||||
0x7e, 0xfe, 0x3e, 0x74, 0x45, 0x55, 0x8b, 0x6c, 0xd5, 0x0c, 0x5d, 0xeb, 0x08, 0xba, 0x16, 0xa4,
|
||||
0xdd, 0x34, 0x88, 0x6e, 0xfa, 0x3a, 0xb4, 0x5d, 0x8c, 0xcd, 0x41, 0xe8, 0x1b, 0x6e, 0x70, 0x80,
|
||||
0x7d, 0xea, 0xe6, 0xeb, 0x7a, 0x8b, 0x00, 0xf7, 0x38, 0x0c, 0xbd, 0x01, 0x40, 0xd7, 0xc8, 0xca,
|
||||
0x53, 0xad, 0xe9, 0xe5, 0x29, 0x2a, 0x34, 0xb4, 0x3c, 0x45, 0x99, 0x42, 0x7f, 0x3e, 0xa1, 0x48,
|
||||
0x40, 0xfb, 0xe7, 0x12, 0x5c, 0xe4, 0xe5, 0x8a, 0xf9, 0xe5, 0x72, 0x9a, 0xa7, 0x8e, 0x5c, 0x5d,
|
||||
0xf9, 0x94, 0x02, 0x40, 0xa5, 0x40, 0x30, 0x5b, 0x95, 0x04, 0xb3, 0x62, 0x12, 0x5c, 0xcb, 0x25,
|
||||
0xc1, 0x71, 0xfd, 0x6f, 0xa1, 0x78, 0xfd, 0x0f, 0x2d, 0x43, 0x95, 0x66, 0x66, 0x54, 0x76, 0x1a,
|
||||
0x3a, 0xfb, 0x28, 0xb4, 0xab, 0xda, 0x1f, 0x94, 0xa0, 0xbd, 0x8b, 0x0d, 0x7f, 0x78, 0x18, 0xf1,
|
||||
0xf1, 0xb5, 0x74, 0xbd, 0xf4, 0xb9, 0x29, 0xf5, 0x52, 0x61, 0xc8, 0x57, 0xa6, 0x50, 0x4a, 0x10,
|
||||
0x84, 0x5e, 0x68, 0xc4, 0x54, 0x0e, 0xdc, 0x89, 0xc3, 0x8b, 0x88, 0x5d, 0xda, 0xc0, 0x49, 0xdd,
|
||||
0x9e, 0x38, 0xda, 0x7f, 0x29, 0xd0, 0xfa, 0x65, 0x32, 0x4d, 0xc4, 0x98, 0x3b, 0x69, 0xc6, 0xbc,
|
||||
0x30, 0x85, 0x31, 0x3a, 0x49, 0xb2, 0xf0, 0x11, 0xfe, 0xca, 0xd5, 0x90, 0xff, 0x51, 0x81, 0x3e,
|
||||
0x49, 0xb1, 0x75, 0x66, 0x77, 0xe6, 0xd7, 0xae, 0xeb, 0xd0, 0x3e, 0x12, 0x82, 0xd9, 0x12, 0x15,
|
||||
0xce, 0xd6, 0x51, 0xba, 0x24, 0xa0, 0x83, 0x1a, 0x95, 0x74, 0xf9, 0x62, 0x23, 0x37, 0xf0, 0xa2,
|
||||
0x8c, 0xea, 0x0c, 0x71, 0xd4, 0x42, 0x74, 0x7d, 0x11, 0xa8, 0xfd, 0x8e, 0x02, 0x4b, 0x92, 0x8e,
|
||||
0xe8, 0x12, 0x2c, 0xf0, 0xf2, 0x03, 0x8f, 0x17, 0x98, 0xbe, 0x9b, 0x64, 0x7b, 0x92, 0x02, 0x9a,
|
||||
0x65, 0xe6, 0x23, 0x64, 0x93, 0x64, 0xd4, 0x71, 0xae, 0x65, 0xe6, 0xf6, 0xc7, 0x0c, 0x50, 0x1f,
|
||||
0xea, 0xdc, 0x9a, 0x46, 0x49, 0x6c, 0xfc, 0xad, 0x3d, 0x02, 0xf4, 0x00, 0x27, 0xbe, 0x6b, 0x1e,
|
||||
0x8e, 0x26, 0xf6, 0x26, 0x21, 0x34, 0x6d, 0x84, 0x4c, 0xed, 0x3f, 0x14, 0x58, 0x12, 0xb0, 0xcd,
|
||||
0x53, 0x26, 0x4a, 0xfc, 0x6b, 0xe9, 0x3c, 0xfe, 0x55, 0x28, 0x85, 0x94, 0xcf, 0x54, 0x0a, 0xb9,
|
||||
0x0a, 0x10, 0xf3, 0x3f, 0xe2, 0x68, 0x0a, 0xa2, 0xfd, 0xbd, 0x02, 0x17, 0xdf, 0x31, 0x5c, 0xd3,
|
||||
0x3b, 0x38, 0x98, 0x5f, 0x54, 0x37, 0x40, 0x48, 0x7b, 0x8b, 0x16, 0x03, 0xc5, 0x5c, 0xf9, 0x25,
|
||||
0x58, 0xf4, 0x99, 0x67, 0x32, 0x45, 0x59, 0x2e, 0xeb, 0x6a, 0xd4, 0x10, 0xcb, 0xe8, 0x5f, 0x96,
|
||||
0x00, 0x91, 0x55, 0xdf, 0x33, 0x6c, 0xc3, 0x1d, 0xe2, 0xf3, 0x93, 0xfe, 0x3c, 0x74, 0x84, 0x10,
|
||||
0x26, 0x3e, 0x9c, 0x4f, 0xc7, 0x30, 0x01, 0x7a, 0x17, 0x3a, 0xfb, 0x0c, 0xd5, 0xc0, 0xc7, 0x46,
|
||||
0xe0, 0xb9, 0x7c, 0x3b, 0xa4, 0x75, 0xbf, 0x3d, 0xdf, 0x1a, 0x8d, 0xb0, 0xbf, 0xe1, 0xb9, 0x26,
|
||||
0x8f, 0xda, 0xf7, 0x23, 0x32, 0xc9, 0x50, 0xa2, 0x0c, 0x49, 0x3c, 0x17, 0x6f, 0x4e, 0x1c, 0xd0,
|
||||
0x51, 0x56, 0x04, 0xd8, 0xb0, 0x13, 0x46, 0x24, 0xde, 0x50, 0x65, 0x0d, 0xbb, 0xd3, 0xcb, 0xbe,
|
||||
0x92, 0xf8, 0x4a, 0xfb, 0x1b, 0x05, 0x50, 0x9c, 0x9a, 0xd3, 0x5a, 0x06, 0xd5, 0xe8, 0xec, 0x50,
|
||||
0x45, 0xe2, 0x94, 0x2f, 0x43, 0xc3, 0x8c, 0x46, 0x72, 0x13, 0x94, 0x00, 0xa8, 0x8f, 0xa4, 0x44,
|
||||
0x0f, 0x88, 0xe4, 0x61, 0x33, 0x4a, 0x7d, 0x19, 0xf0, 0x3d, 0x0a, 0x13, 0xc3, 0xb3, 0x4a, 0x36,
|
||||
0x3c, 0x4b, 0x57, 0x35, 0xab, 0x42, 0x55, 0x53, 0xfb, 0x69, 0x09, 0x54, 0xea, 0x42, 0x36, 0x92,
|
||||
0xf2, 0x54, 0x21, 0xa2, 0xaf, 0x43, 0x9b, 0x5f, 0x6e, 0x11, 0x08, 0x6f, 0x3d, 0x4e, 0x4d, 0x86,
|
||||
0x6e, 0xc1, 0x32, 0xeb, 0xe4, 0xe3, 0x60, 0x62, 0x27, 0x59, 0x1f, 0x4b, 0x66, 0xd0, 0x63, 0xe6,
|
||||
0xbb, 0x48, 0x53, 0x34, 0xe2, 0x21, 0x5c, 0x1c, 0xd9, 0xde, 0xbe, 0x61, 0x0f, 0xc4, 0xed, 0x61,
|
||||
0x7b, 0x58, 0x40, 0xe2, 0x97, 0xd9, 0xf0, 0xdd, 0xf4, 0x1e, 0x06, 0xe8, 0x1e, 0xb4, 0x03, 0x8c,
|
||||
0x1f, 0x25, 0xa9, 0x60, 0xb5, 0x48, 0x2a, 0xd8, 0x22, 0x63, 0xa2, 0x2f, 0xed, 0x8f, 0x15, 0xe8,
|
||||
0x66, 0xce, 0x24, 0xb2, 0x85, 0x0b, 0x25, 0x5f, 0xb8, 0xb8, 0x03, 0x55, 0x62, 0xa9, 0x98, 0x6f,
|
||||
0xe9, 0xc8, 0x93, 0x6a, 0x71, 0x56, 0x9d, 0x0d, 0x40, 0x37, 0x61, 0x49, 0x72, 0xf7, 0x81, 0x6f,
|
||||
0x3f, 0xca, 0x5f, 0x7d, 0xd0, 0x7e, 0x56, 0x81, 0x66, 0x8a, 0x15, 0x33, 0x6a, 0x2e, 0x4f, 0xa4,
|
||||
0xb6, 0x3c, 0xed, 0xac, 0x9b, 0x88, 0x9c, 0x83, 0x1d, 0x96, 0xf7, 0xf1, 0x24, 0xd4, 0xc1, 0x0e,
|
||||
0xcd, 0xfa, 0xd2, 0x09, 0x5d, 0x4d, 0x48, 0xe8, 0x32, 0x29, 0xef, 0xc2, 0x29, 0x29, 0x6f, 0x5d,
|
||||
0x4c, 0x79, 0x05, 0x15, 0x6a, 0x64, 0x55, 0xa8, 0x68, 0x19, 0xe4, 0x16, 0x2c, 0x0d, 0x59, 0xed,
|
||||
0xfe, 0xde, 0xc9, 0x46, 0xdc, 0xc4, 0x83, 0x52, 0x59, 0x13, 0xba, 0x9f, 0x14, 0x38, 0xd9, 0x2e,
|
||||
0xb3, 0xa4, 0x43, 0x9e, 0x51, 0xf3, 0xbd, 0x61, 0x9b, 0x1c, 0x59, 0x66, 0xfa, 0x95, 0x2d, 0xc0,
|
||||
0xb4, 0xcf, 0x55, 0x80, 0x79, 0x06, 0x9a, 0x51, 0xa4, 0x42, 0x34, 0xbd, 0xc3, 0x8c, 0x5e, 0x64,
|
||||
0x06, 0xcc, 0x40, 0xb0, 0x03, 0x5d, 0xf1, 0x74, 0x23, 0x5b, 0x8f, 0x50, 0xf3, 0xf5, 0x88, 0x4b,
|
||||
0xb0, 0x60, 0x05, 0x83, 0x03, 0xe3, 0x11, 0xee, 0x2d, 0xd2, 0xd6, 0x9a, 0x15, 0xdc, 0x37, 0x1e,
|
||||
0x61, 0xed, 0x5f, 0xcb, 0xd0, 0x49, 0x1c, 0x6c, 0x61, 0x0b, 0x52, 0xe4, 0xfe, 0xcf, 0x36, 0xa8,
|
||||
0x49, 0xdc, 0x43, 0x39, 0x7c, 0x6a, 0x0e, 0x9e, 0x3d, 0x32, 0xec, 0x8e, 0x33, 0xfa, 0x2a, 0xb8,
|
||||
0xfb, 0xca, 0x99, 0xdc, 0xfd, 0x9c, 0x37, 0x03, 0x6e, 0xc3, 0x4a, 0xec, 0x7b, 0x85, 0x65, 0xb3,
|
||||
0x04, 0x6b, 0x39, 0x6a, 0xdc, 0x49, 0x2f, 0x7f, 0x8a, 0x09, 0x58, 0x98, 0x66, 0x02, 0xb2, 0x22,
|
||||
0x50, 0xcf, 0x89, 0x40, 0xfe, 0x82, 0x42, 0x43, 0x72, 0x41, 0x41, 0x7b, 0x08, 0x4b, 0xb4, 0xd8,
|
||||
0x1c, 0x0c, 0x7d, 0x6b, 0x1f, 0xc7, 0x29, 0x40, 0x91, 0x6d, 0xed, 0x43, 0x3d, 0x93, 0x45, 0xc4,
|
||||
0xdf, 0xda, 0x8f, 0x15, 0xb8, 0x98, 0x9f, 0x97, 0x4a, 0x4c, 0x62, 0x48, 0x14, 0xc1, 0x90, 0xfc,
|
||||
0x0a, 0x2c, 0xa5, 0x22, 0x4a, 0x61, 0xe6, 0x29, 0x11, 0xb8, 0x84, 0x70, 0x1d, 0x25, 0x73, 0x44,
|
||||
0x30, 0xed, 0x67, 0x4a, 0x5c, 0xb3, 0x27, 0xb0, 0x11, 0x3d, 0x10, 0x21, 0x7e, 0xcd, 0x73, 0x6d,
|
||||
0xcb, 0x8d, 0x0b, 0x2e, 0x7c, 0x8d, 0x0c, 0xc8, 0x0b, 0x2e, 0xef, 0x40, 0x97, 0x77, 0x8a, 0xdd,
|
||||
0x53, 0xc1, 0x80, 0xac, 0xc3, 0xc6, 0xc5, 0x8e, 0xe9, 0x79, 0xe8, 0xf0, 0x93, 0x8a, 0x08, 0x5f,
|
||||
0x59, 0x76, 0x7e, 0xf1, 0x3d, 0x50, 0xa3, 0x6e, 0x67, 0x75, 0x88, 0x5d, 0x3e, 0x30, 0x0e, 0xec,
|
||||
0x7e, 0x53, 0x81, 0x9e, 0xe8, 0x1e, 0x53, 0xcb, 0x3f, 0x7b, 0x78, 0xf7, 0xba, 0x78, 0x3e, 0xfd,
|
||||
0xfc, 0x29, 0xf4, 0x24, 0x78, 0xa2, 0x53, 0xea, 0xdf, 0x2d, 0xd1, 0xcb, 0x06, 0x24, 0xd5, 0xdb,
|
||||
0xb4, 0x82, 0xd0, 0xb7, 0xf6, 0x27, 0xf3, 0x9d, 0x98, 0x1a, 0xd0, 0x1c, 0x1e, 0xe2, 0xe1, 0xa3,
|
||||
0xb1, 0x67, 0x25, 0xbb, 0xf2, 0x96, 0x8c, 0xa6, 0xe9, 0x68, 0xd7, 0x36, 0x92, 0x19, 0xd8, 0x91,
|
||||
0x53, 0x7a, 0xce, 0xfe, 0x0f, 0x41, 0xcd, 0x76, 0x48, 0x9f, 0xf4, 0x34, 0xd8, 0x49, 0xcf, 0x6d,
|
||||
0xf1, 0xa4, 0x67, 0x46, 0xa4, 0x91, 0x3a, 0xe8, 0xf9, 0xdb, 0x12, 0x7c, 0x5d, 0x4a, 0xdb, 0x3c,
|
||||
0x59, 0xd2, 0xb4, 0x3a, 0xd2, 0x3d, 0xa8, 0x67, 0x92, 0xda, 0x17, 0x4e, 0xd9, 0x3f, 0x5e, 0x92,
|
||||
0x65, 0xa5, 0xc1, 0x20, 0x89, 0xad, 0x12, 0x85, 0xaf, 0x4c, 0x9f, 0x83, 0xeb, 0x9d, 0x30, 0x47,
|
||||
0x34, 0x0e, 0xdd, 0x85, 0x16, 0x2b, 0x18, 0x0c, 0x8e, 0x2c, 0x7c, 0x1c, 0x9d, 0xa3, 0x5e, 0x95,
|
||||
0x9a, 0x66, 0xda, 0xef, 0x43, 0x0b, 0x1f, 0xeb, 0x4d, 0x3b, 0xfe, 0x1d, 0x68, 0xbf, 0x5f, 0x01,
|
||||
0x48, 0xda, 0x48, 0x76, 0x96, 0xe8, 0x3c, 0x57, 0xe2, 0x14, 0x84, 0xc4, 0x12, 0x62, 0xe4, 0x1a,
|
||||
0x7d, 0x22, 0x3d, 0x39, 0xc7, 0x30, 0xad, 0x20, 0xe4, 0x7c, 0xb9, 0x79, 0x3a, 0x2d, 0x11, 0x8b,
|
||||
0xc8, 0x96, 0x71, 0x99, 0x09, 0x12, 0x08, 0x7a, 0x05, 0xd0, 0xc8, 0xf7, 0x8e, 0x2d, 0x77, 0x94,
|
||||
0xce, 0x37, 0x58, 0x5a, 0xb2, 0xc8, 0x5b, 0x52, 0x09, 0xc7, 0x8f, 0x40, 0xcd, 0x74, 0x8f, 0x58,
|
||||
0x72, 0x7b, 0x06, 0x19, 0x0f, 0x84, 0xb9, 0xb8, 0xf8, 0x76, 0x45, 0x0c, 0xf4, 0xd0, 0x74, 0xcf,
|
||||
0xf0, 0x47, 0x38, 0xda, 0x51, 0x1e, 0x87, 0x89, 0xc0, 0xfe, 0x00, 0xd4, 0xec, 0xaa, 0x24, 0x47,
|
||||
0x9a, 0xaf, 0x8a, 0x82, 0x7e, 0x9a, 0x3d, 0x22, 0xd3, 0xa4, 0x44, 0xbd, 0x6f, 0xc0, 0xb2, 0x8c,
|
||||
0x5e, 0x09, 0x92, 0x73, 0x6b, 0xd3, 0x5b, 0x71, 0x48, 0x4c, 0xf7, 0x61, 0x9a, 0x97, 0x49, 0x15,
|
||||
0x9e, 0x4b, 0x42, 0xe1, 0x59, 0xfb, 0xf5, 0x32, 0xa0, 0xbc, 0xf8, 0xa3, 0x0e, 0x94, 0xe2, 0x49,
|
||||
0x4a, 0x5b, 0x9b, 0x19, 0x71, 0x2b, 0xe5, 0xc4, 0xed, 0x32, 0x34, 0x62, 0xaf, 0xcf, 0x4d, 0x7c,
|
||||
0x02, 0x48, 0x0b, 0x63, 0x45, 0x14, 0xc6, 0x14, 0x61, 0x55, 0xb1, 0x22, 0x7e, 0x0b, 0x96, 0x6d,
|
||||
0x23, 0x08, 0x07, 0xac, 0xf0, 0x1e, 0x5a, 0x0e, 0x0e, 0x42, 0xc3, 0x19, 0xd3, 0xad, 0xac, 0xe8,
|
||||
0x88, 0xb4, 0x6d, 0x92, 0xa6, 0xbd, 0xa8, 0x05, 0xed, 0x45, 0xd1, 0x35, 0xb1, 0xbd, 0xfc, 0xb2,
|
||||
0xc0, 0xab, 0xc5, 0xd4, 0x3d, 0x29, 0x77, 0x33, 0x89, 0x6a, 0xc4, 0x61, 0x67, 0xff, 0x13, 0xe8,
|
||||
0x88, 0x8d, 0x92, 0xed, 0xbb, 0x23, 0x6e, 0x5f, 0x91, 0xc0, 0x36, 0xb5, 0x87, 0x87, 0x80, 0xf2,
|
||||
0xc6, 0x23, 0xcd, 0x33, 0x45, 0xe4, 0xd9, 0xac, 0xbd, 0x48, 0xf1, 0xb4, 0x2c, 0x6e, 0xf6, 0x9f,
|
||||
0x96, 0x01, 0x25, 0x11, 0x5c, 0x7c, 0x78, 0x5d, 0x24, 0xec, 0xb9, 0x09, 0x4b, 0xf9, 0xf8, 0x2e,
|
||||
0x0a, 0x6a, 0x51, 0x2e, 0xba, 0x93, 0x45, 0x62, 0x65, 0xd9, 0x55, 0xd1, 0xd7, 0x62, 0x73, 0xcf,
|
||||
0xc2, 0xd5, 0xab, 0x53, 0xcf, 0x33, 0x44, 0x8b, 0xff, 0xc3, 0xec, 0x15, 0x53, 0x66, 0x3f, 0xee,
|
||||
0x48, 0x4d, 0x73, 0x6e, 0xc9, 0x33, 0xef, 0x97, 0x0a, 0x81, 0x74, 0xed, 0x2c, 0x81, 0xf4, 0xfc,
|
||||
0x17, 0x42, 0xff, 0xbd, 0x04, 0x8b, 0x31, 0x23, 0xcf, 0xb4, 0x49, 0xb3, 0xef, 0x19, 0x3c, 0xe5,
|
||||
0x5d, 0xf9, 0x58, 0xbe, 0x2b, 0xdf, 0x3e, 0x35, 0x99, 0x29, 0xba, 0x29, 0xf3, 0x73, 0xf6, 0x33,
|
||||
0x58, 0xe0, 0x65, 0xe9, 0x9c, 0x81, 0x2b, 0x52, 0x2e, 0x58, 0x86, 0x2a, 0xb1, 0xa7, 0x51, 0x4d,
|
||||
0x91, 0x7d, 0x30, 0x96, 0xa6, 0x2f, 0x1c, 0x73, 0x1b, 0xd7, 0x16, 0xee, 0x1b, 0x6b, 0xbf, 0x55,
|
||||
0x06, 0xd8, 0x3d, 0x71, 0x87, 0x77, 0x99, 0x92, 0xde, 0x82, 0xca, 0xac, 0xeb, 0x69, 0xa4, 0x37,
|
||||
0x95, 0x2d, 0xda, 0xb3, 0xc0, 0xe6, 0x0a, 0x05, 0x91, 0x72, 0xb6, 0x20, 0x32, 0xad, 0x94, 0x31,
|
||||
0xdd, 0x04, 0x7f, 0x1b, 0x2a, 0xd4, 0x94, 0xb2, 0xdb, 0x5b, 0x85, 0x4e, 0x85, 0xe9, 0x00, 0xb4,
|
||||
0x0a, 0x91, 0x4b, 0xde, 0x72, 0x99, 0xcf, 0xa5, 0xe6, 0xb8, 0xac, 0x67, 0xc1, 0xe8, 0x05, 0xe8,
|
||||
0xb0, 0x42, 0x58, 0xdc, 0x91, 0xe5, 0x74, 0x19, 0x68, 0xde, 0xa3, 0x37, 0x24, 0x1e, 0x9d, 0xe0,
|
||||
0x35, 0x7d, 0x6f, 0x3c, 0x4e, 0x4d, 0xc7, 0x2a, 0x21, 0x59, 0xb0, 0xf6, 0x79, 0x09, 0x2e, 0x11,
|
||||
0xfe, 0x3e, 0x99, 0xa8, 0xbc, 0x88, 0xf0, 0xa4, 0xec, 0x79, 0x59, 0xb4, 0xe7, 0x77, 0x60, 0x81,
|
||||
0x95, 0x5b, 0xa2, 0xf8, 0xf2, 0xea, 0x34, 0x69, 0x60, 0xb2, 0xa3, 0x47, 0xdd, 0xe7, 0xcd, 0xd9,
|
||||
0x85, 0x33, 0xf3, 0xda, 0x7c, 0x67, 0xe6, 0x0b, 0xd9, 0xa2, 0x6c, 0x4a, 0xac, 0xea, 0xa2, 0x17,
|
||||
0x7a, 0x08, 0x6d, 0x3d, 0xad, 0x1a, 0x08, 0x41, 0x25, 0x75, 0x61, 0x95, 0xfe, 0xa6, 0x69, 0xb6,
|
||||
0x31, 0x36, 0x86, 0x56, 0x78, 0x42, 0xd9, 0x59, 0xd5, 0xe3, 0x6f, 0xb9, 0x1e, 0x6a, 0xff, 0xab,
|
||||
0xc0, 0xc5, 0xe8, 0x50, 0x95, 0x6b, 0xf9, 0xf9, 0x77, 0x74, 0x1d, 0x56, 0xb8, 0x4a, 0x67, 0x74,
|
||||
0x9b, 0x05, 0xd3, 0x4b, 0x0c, 0x26, 0x2e, 0x63, 0x1d, 0x56, 0x42, 0x2a, 0x5d, 0xd9, 0x31, 0x6c,
|
||||
0xbf, 0x97, 0x58, 0xa3, 0x38, 0xa6, 0xc8, 0xa1, 0xf6, 0x33, 0xec, 0x06, 0x16, 0x67, 0x2d, 0x57,
|
||||
0x52, 0x70, 0x27, 0x0e, 0x5f, 0xa5, 0x76, 0x0c, 0x97, 0xd9, 0x95, 0xf1, 0x7d, 0x91, 0xa2, 0xb9,
|
||||
0xce, 0x34, 0xa4, 0xeb, 0xce, 0xd8, 0xb4, 0x3f, 0x51, 0xe0, 0xca, 0x14, 0xcc, 0xf3, 0x64, 0x73,
|
||||
0xef, 0x49, 0xb1, 0x4f, 0xc9, 0xbd, 0x05, 0xbc, 0xec, 0xc2, 0x82, 0x48, 0xe4, 0xe7, 0x15, 0x58,
|
||||
0xcc, 0x75, 0x3a, 0xb3, 0xcc, 0xbd, 0x0c, 0x88, 0x6c, 0x42, 0xfc, 0x3c, 0x92, 0x96, 0x33, 0xb8,
|
||||
0xf3, 0x54, 0xdd, 0x89, 0x13, 0x3f, 0x8d, 0xdc, 0xf6, 0x4c, 0x8c, 0x2c, 0xd6, 0x9b, 0x9d, 0x68,
|
||||
0xc4, 0x3b, 0x57, 0x99, 0xfe, 0x0a, 0x26, 0x47, 0xe0, 0xda, 0xf6, 0xc4, 0x61, 0x87, 0x1f, 0x7c,
|
||||
0x97, 0x99, 0x43, 0x24, 0xa8, 0x04, 0x30, 0x3a, 0x80, 0x45, 0x7a, 0x3f, 0x6f, 0x12, 0x8e, 0x3c,
|
||||
0x92, 0x50, 0x51, 0xba, 0x98, 0xdb, 0xfd, 0x6e, 0x61, 0x4c, 0x1f, 0xf0, 0xd1, 0x84, 0x78, 0x9e,
|
||||
0x53, 0xb9, 0x22, 0x34, 0xc2, 0x63, 0xb9, 0x43, 0xcf, 0x89, 0xf1, 0xd4, 0xce, 0x88, 0x67, 0x8b,
|
||||
0x8f, 0x16, 0xf1, 0xa4, 0xa1, 0xfd, 0x0d, 0x58, 0x91, 0x2e, 0x7d, 0x96, 0xa3, 0xaf, 0xa6, 0x33,
|
||||
0xaf, 0x7b, 0xb0, 0x2c, 0x5b, 0xd5, 0x39, 0xe6, 0xc8, 0x51, 0x7c, 0x96, 0x39, 0xb4, 0xbf, 0x28,
|
||||
0x41, 0x7b, 0x13, 0xdb, 0x38, 0xc4, 0x4f, 0xf7, 0xcc, 0x39, 0x77, 0x80, 0x5e, 0xce, 0x1f, 0xa0,
|
||||
0xe7, 0x6e, 0x03, 0x54, 0x24, 0xb7, 0x01, 0xae, 0xc4, 0x97, 0x20, 0xc8, 0x2c, 0x55, 0x31, 0x86,
|
||||
0x30, 0xd1, 0xeb, 0xd0, 0x1a, 0xfb, 0x96, 0x63, 0xf8, 0x27, 0x83, 0x47, 0xf8, 0x24, 0xe0, 0x4e,
|
||||
0xa3, 0x27, 0x75, 0x3b, 0x5b, 0x9b, 0x81, 0xde, 0xe4, 0xbd, 0xdf, 0xc5, 0x27, 0xf4, 0x82, 0x45,
|
||||
0x9c, 0xc6, 0xb1, 0x1b, 0x75, 0x15, 0x3d, 0x05, 0xb9, 0xf1, 0x12, 0x34, 0xe2, 0x8b, 0x4b, 0xa8,
|
||||
0x0e, 0x95, 0xfb, 0x13, 0xdb, 0x56, 0x2f, 0xa0, 0x06, 0x54, 0x69, 0xa2, 0xa7, 0x2a, 0xe4, 0x27,
|
||||
0x8d, 0xfd, 0xd4, 0xd2, 0x8d, 0x5f, 0x82, 0x46, 0x7c, 0x81, 0x02, 0x35, 0x61, 0xe1, 0xa1, 0xfb,
|
||||
0xae, 0xeb, 0x1d, 0xbb, 0xea, 0x05, 0xb4, 0x00, 0xe5, 0xbb, 0xb6, 0xad, 0x2a, 0xa8, 0x0d, 0x8d,
|
||||
0xdd, 0xd0, 0xc7, 0x06, 0xd9, 0x3e, 0xb5, 0x84, 0x3a, 0x00, 0xef, 0x58, 0x41, 0xe8, 0xf9, 0xd6,
|
||||
0xd0, 0xb0, 0xd5, 0xf2, 0x8d, 0xcf, 0xa0, 0x23, 0xd6, 0xd3, 0x51, 0x0b, 0xea, 0xdb, 0x5e, 0xf8,
|
||||
0xf6, 0xa7, 0x56, 0x10, 0xaa, 0x17, 0x48, 0xff, 0x6d, 0x2f, 0xdc, 0xf1, 0x71, 0x80, 0xdd, 0x50,
|
||||
0x55, 0x10, 0x40, 0xed, 0x03, 0x77, 0xd3, 0x0a, 0x1e, 0xa9, 0x25, 0xb4, 0xc4, 0x8f, 0xca, 0x0c,
|
||||
0x7b, 0x8b, 0x17, 0xa9, 0xd5, 0x32, 0x19, 0x1e, 0x7f, 0x55, 0x90, 0x0a, 0xad, 0xb8, 0xcb, 0x83,
|
||||
0x9d, 0x87, 0x6a, 0x95, 0x51, 0x4f, 0x7e, 0xd6, 0x6e, 0x98, 0xa0, 0x66, 0x8f, 0x78, 0xc9, 0x9c,
|
||||
0x6c, 0x11, 0x31, 0x48, 0xbd, 0x40, 0x56, 0xc6, 0xcf, 0xd8, 0x55, 0x05, 0x75, 0xa1, 0x99, 0x3a,
|
||||
0xb1, 0x56, 0x4b, 0x04, 0xf0, 0xc0, 0x1f, 0x0f, 0xb9, 0x6c, 0x31, 0x12, 0x88, 0xa0, 0x6e, 0x12,
|
||||
0x4e, 0x54, 0x6e, 0xdc, 0x83, 0x7a, 0x94, 0x9f, 0x90, 0xae, 0x9c, 0x45, 0xe4, 0x53, 0xbd, 0x80,
|
||||
0x16, 0xa1, 0x2d, 0x3c, 0xbd, 0x53, 0x15, 0x84, 0xa0, 0x23, 0x3e, 0x8e, 0x55, 0x4b, 0x37, 0xd6,
|
||||
0x01, 0x92, 0x38, 0x9f, 0x90, 0xb3, 0xe5, 0x1e, 0x19, 0xb6, 0x65, 0x32, 0xda, 0x48, 0x13, 0xe1,
|
||||
0x2e, 0xe5, 0x0e, 0xd3, 0x59, 0xb5, 0x74, 0xe3, 0x4d, 0xa8, 0x47, 0xb1, 0x2b, 0x81, 0xeb, 0xd8,
|
||||
0xf1, 0x8e, 0x30, 0xdb, 0x99, 0x5d, 0x1c, 0xb2, 0x7d, 0xbc, 0xeb, 0x60, 0xd7, 0x54, 0x4b, 0x84,
|
||||
0x8c, 0x87, 0x63, 0xd3, 0x08, 0xa3, 0x6b, 0xa6, 0x6a, 0x79, 0xfd, 0x3f, 0x97, 0x00, 0xd8, 0x99,
|
||||
0xad, 0xe7, 0xf9, 0x26, 0xb2, 0xe9, 0xdd, 0x8d, 0x0d, 0xcf, 0x19, 0x7b, 0x6e, 0x74, 0xa0, 0x14,
|
||||
0xa0, 0xb5, 0x4c, 0x89, 0x84, 0x7d, 0xe4, 0x3b, 0x72, 0xde, 0xf4, 0x9f, 0x93, 0xf6, 0xcf, 0x74,
|
||||
0xd6, 0x2e, 0x20, 0x87, 0x62, 0xdb, 0xb3, 0x1c, 0xbc, 0x67, 0x0d, 0x1f, 0xc5, 0x07, 0xbd, 0xd3,
|
||||
0x1f, 0xad, 0x66, 0xba, 0x46, 0xf8, 0xae, 0x4b, 0xf1, 0xed, 0x86, 0xbe, 0xe5, 0x8e, 0x22, 0xef,
|
||||
0xa8, 0x5d, 0x40, 0x8f, 0x33, 0x4f, 0x66, 0x23, 0x84, 0xeb, 0x45, 0x5e, 0xc9, 0x9e, 0x0f, 0xa5,
|
||||
0x0d, 0xdd, 0xcc, 0x7f, 0x13, 0xa0, 0x1b, 0xf2, 0xb7, 0x47, 0xb2, 0xff, 0x51, 0xe8, 0xbf, 0x54,
|
||||
0xa8, 0x6f, 0x8c, 0xcd, 0x82, 0x8e, 0xf8, 0xa8, 0x1e, 0x7d, 0x63, 0xda, 0x04, 0xb9, 0xd7, 0x8f,
|
||||
0xfd, 0x1b, 0x45, 0xba, 0xc6, 0xa8, 0x3e, 0x62, 0xe2, 0x3b, 0x0b, 0x95, 0xf4, 0xc1, 0x69, 0xff,
|
||||
0xb4, 0xc0, 0x44, 0xbb, 0x80, 0x3e, 0x21, 0x31, 0x44, 0xe6, 0x8d, 0x26, 0x7a, 0x59, 0xee, 0xf7,
|
||||
0xe4, 0x4f, 0x39, 0x67, 0x61, 0xf8, 0x28, 0xab, 0x7c, 0xd3, 0xa9, 0xcf, 0x3d, 0xfe, 0x2e, 0x4e,
|
||||
0x7d, 0x6a, 0xfa, 0xd3, 0xa8, 0x3f, 0x33, 0x06, 0x9b, 0xa5, 0x53, 0x92, 0xd7, 0x61, 0x59, 0x51,
|
||||
0x4e, 0xb2, 0x99, 0xe9, 0x4f, 0xc9, 0x66, 0x61, 0x9b, 0x50, 0x25, 0xcd, 0x5e, 0x56, 0x78, 0x65,
|
||||
0xca, 0x31, 0x88, 0xfc, 0x59, 0x6a, 0x7f, 0xad, 0x68, 0xf7, 0xb4, 0x2c, 0x8b, 0x2f, 0x1f, 0xe5,
|
||||
0x5b, 0x24, 0x7d, 0xad, 0x29, 0x97, 0x65, 0xf9, 0x43, 0x4a, 0xed, 0x02, 0xda, 0x13, 0x4c, 0x3d,
|
||||
0x7a, 0x61, 0x9a, 0x28, 0x88, 0xb7, 0x97, 0x66, 0xf1, 0xed, 0x57, 0x01, 0x31, 0x4d, 0x75, 0x0f,
|
||||
0xac, 0xd1, 0xc4, 0x37, 0x98, 0x18, 0x4f, 0x33, 0x6e, 0xf9, 0xae, 0x11, 0x9a, 0x6f, 0x9e, 0x61,
|
||||
0x44, 0xbc, 0xa4, 0x01, 0xc0, 0x03, 0x1c, 0xbe, 0x4f, 0x9f, 0xc0, 0x05, 0xd9, 0x15, 0x25, 0xf6,
|
||||
0x9b, 0x77, 0x88, 0x50, 0xbd, 0x38, 0xb3, 0x5f, 0x8c, 0x60, 0x1f, 0x9a, 0x0f, 0x48, 0x7e, 0x45,
|
||||
0x63, 0xc6, 0x00, 0x4d, 0x1d, 0x19, 0xf5, 0x88, 0x50, 0xac, 0xce, 0xee, 0x98, 0x36, 0x9e, 0x99,
|
||||
0x57, 0xa0, 0x68, 0xea, 0xc6, 0xe6, 0xdf, 0xa6, 0xca, 0x8d, 0xe7, 0x94, 0x67, 0xa5, 0x6c, 0x45,
|
||||
0xf4, 0x28, 0xee, 0x1d, 0x6c, 0xd8, 0xe1, 0xe1, 0x94, 0x15, 0xa5, 0x7a, 0x9c, 0xbe, 0x22, 0xa1,
|
||||
0x63, 0x8c, 0x03, 0xc3, 0x12, 0xd3, 0x42, 0x31, 0x31, 0xbd, 0x29, 0x9f, 0x22, 0xdf, 0xb3, 0xa0,
|
||||
0xe8, 0x19, 0xb0, 0xb8, 0xe9, 0x7b, 0x63, 0x11, 0xc9, 0x2b, 0x52, 0x24, 0xb9, 0x7e, 0x05, 0x51,
|
||||
0x7c, 0x1f, 0x5a, 0x51, 0xfe, 0x4f, 0x33, 0x16, 0x39, 0x17, 0xd2, 0x5d, 0x0a, 0x4e, 0xfc, 0x31,
|
||||
0x74, 0x33, 0x85, 0x05, 0xf9, 0xa6, 0xcb, 0xab, 0x0f, 0xb3, 0x66, 0x3f, 0x06, 0x44, 0x9f, 0xf6,
|
||||
0x8a, 0xff, 0x4e, 0x20, 0x8f, 0x6f, 0xf2, 0x1d, 0x23, 0x24, 0x37, 0x0b, 0xf7, 0x8f, 0x77, 0xfe,
|
||||
0xd7, 0x60, 0x45, 0x9a, 0xbc, 0x67, 0x0d, 0x02, 0xbf, 0xae, 0x7c, 0x4a, 0x85, 0x21, 0x6b, 0x10,
|
||||
0x4e, 0x1d, 0x11, 0xe1, 0x5f, 0xff, 0x37, 0x04, 0x0d, 0x1a, 0xe7, 0xd1, 0xdd, 0xfa, 0x45, 0x98,
|
||||
0xf7, 0x64, 0xc3, 0xbc, 0x8f, 0xa1, 0x9b, 0x79, 0x72, 0x2a, 0x17, 0x5a, 0xf9, 0xbb, 0xd4, 0x02,
|
||||
0xd1, 0x8a, 0xf8, 0x5a, 0x53, 0xee, 0x0a, 0xa5, 0x2f, 0x3a, 0x67, 0xcd, 0xfd, 0x21, 0x7b, 0xce,
|
||||
0x1d, 0x9f, 0xe6, 0xbe, 0x38, 0xf5, 0xf0, 0x41, 0xbc, 0x76, 0xfc, 0xc5, 0x47, 0x41, 0x5f, 0xed,
|
||||
0x08, 0xf4, 0x63, 0xe8, 0x66, 0x1e, 0xf6, 0xc8, 0x25, 0x46, 0xfe, 0xfa, 0x67, 0xd6, 0xec, 0x3f,
|
||||
0xc7, 0xe0, 0xc9, 0x84, 0x25, 0xc9, 0x3b, 0x0a, 0xb4, 0x36, 0x2d, 0x10, 0x95, 0x3f, 0xb8, 0x98,
|
||||
0xbd, 0xa0, 0xb6, 0xa0, 0xa6, 0x59, 0x7f, 0x93, 0x10, 0x99, 0xfd, 0x5b, 0xa3, 0xfe, 0xcb, 0xc5,
|
||||
0xfe, 0x03, 0x29, 0x5e, 0xd0, 0x2e, 0xd4, 0xd8, 0x73, 0x1f, 0xf4, 0xac, 0xfc, 0x10, 0x26, 0xf5,
|
||||
0x14, 0xa8, 0x3f, 0xeb, 0xc1, 0x50, 0x30, 0xb1, 0x43, 0x42, 0xff, 0x0f, 0xa0, 0xc3, 0x40, 0x31,
|
||||
0x83, 0x9e, 0xe0, 0xe4, 0xbb, 0x50, 0xa5, 0xa6, 0x1d, 0x49, 0x0f, 0x14, 0xd2, 0x8f, 0x7a, 0xfa,
|
||||
0xb3, 0xdf, 0xf1, 0x24, 0x14, 0x37, 0xe9, 0x48, 0x56, 0xd5, 0x79, 0x92, 0x53, 0xdf, 0x52, 0xd0,
|
||||
0x0f, 0xa0, 0xcd, 0x26, 0x8f, 0xb8, 0xf1, 0x24, 0x29, 0x1f, 0xc2, 0x52, 0x8a, 0xf2, 0xa7, 0x81,
|
||||
0xe2, 0x96, 0xf2, 0xff, 0x3c, 0xba, 0xff, 0x94, 0x3e, 0xaa, 0xc9, 0x5e, 0x1b, 0x43, 0x6b, 0x67,
|
||||
0xbb, 0xfb, 0xd6, 0xbf, 0x59, 0xb8, 0x7f, 0x8c, 0xf9, 0x47, 0xa0, 0x66, 0x8f, 0x0a, 0xd1, 0x4b,
|
||||
0xd3, 0x6c, 0x89, 0x0c, 0xe7, 0x0c, 0x43, 0xf2, 0x3d, 0xa8, 0xb1, 0x1a, 0xb1, 0x5c, 0x01, 0x85,
|
||||
0xfa, 0xf1, 0x8c, 0xb9, 0xee, 0x7d, 0xeb, 0xa3, 0xf5, 0x91, 0x15, 0x1e, 0x4e, 0xf6, 0x49, 0xcb,
|
||||
0x4d, 0xd6, 0xf5, 0x15, 0xcb, 0xe3, 0xbf, 0x6e, 0x46, 0x7b, 0x79, 0x93, 0x8e, 0xbe, 0x49, 0x11,
|
||||
0x8c, 0xf7, 0xf7, 0x6b, 0xf4, 0xf3, 0xf6, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xb4, 0xc4, 0x63,
|
||||
0x89, 0xd0, 0x53, 0x00, 0x00,
|
||||
0x7a, 0x9a, 0x17, 0x39, 0xf3, 0xcd, 0xab, 0x59, 0x24, 0xa5, 0xd9, 0x59, 0x49, 0x96, 0x5b, 0x7e,
|
||||
0x70, 0x65, 0x9b, 0xd2, 0x52, 0x6b, 0xaf, 0x76, 0x6d, 0xc3, 0x91, 0x48, 0x4b, 0xe6, 0xda, 0xa6,
|
||||
0x95, 0xa6, 0xe4, 0x0d, 0xbc, 0xde, 0x1d, 0x37, 0xa7, 0x8b, 0xc3, 0x86, 0xfa, 0x31, 0xea, 0xee,
|
||||
0x21, 0x4d, 0x07, 0x08, 0x72, 0xc8, 0x25, 0x9b, 0x6c, 0x10, 0x24, 0x87, 0xe4, 0x10, 0x04, 0x48,
|
||||
0x82, 0x00, 0x9b, 0x20, 0xb9, 0x04, 0x09, 0x90, 0x43, 0x0e, 0xb9, 0xe5, 0x94, 0xd7, 0x29, 0x7f,
|
||||
0x20, 0xb9, 0xe5, 0x98, 0x45, 0xe0, 0x5b, 0x50, 0xaf, 0xee, 0xae, 0xee, 0x1a, 0x4e, 0x93, 0x23,
|
||||
0xad, 0xed, 0x60, 0x6f, 0xd3, 0x5f, 0x3d, 0xbe, 0xaf, 0xbe, 0x57, 0x7d, 0xdf, 0x57, 0x55, 0x03,
|
||||
0x4b, 0x8f, 0x27, 0x38, 0x38, 0x1e, 0x0c, 0x7d, 0x3f, 0xb0, 0xd6, 0xc7, 0x81, 0x1f, 0xf9, 0x08,
|
||||
0xb9, 0xb6, 0x73, 0x38, 0x09, 0xd9, 0xd7, 0x3a, 0x6d, 0xef, 0xb7, 0x86, 0xbe, 0xeb, 0xfa, 0x1e,
|
||||
0x83, 0xf5, 0x5b, 0xe9, 0x1e, 0xfd, 0x8e, 0xed, 0x45, 0x38, 0xf0, 0x4c, 0x47, 0xb4, 0x86, 0xc3,
|
||||
0x03, 0xec, 0x9a, 0xfc, 0xab, 0xe1, 0x86, 0x23, 0xfe, 0x53, 0xb3, 0xcc, 0xc8, 0x4c, 0xa3, 0xea,
|
||||
0x2f, 0xd9, 0x9e, 0x85, 0x3f, 0x4d, 0x83, 0xf4, 0xdf, 0x28, 0xc1, 0xf9, 0xdd, 0x03, 0xff, 0x68,
|
||||
0xd3, 0x77, 0x1c, 0x3c, 0x8c, 0x6c, 0xdf, 0x0b, 0x0d, 0xfc, 0x78, 0x82, 0xc3, 0x08, 0xdd, 0x80,
|
||||
0xea, 0x9e, 0x19, 0xe2, 0x5e, 0xe9, 0x4a, 0x69, 0xad, 0xb9, 0x71, 0x71, 0x5d, 0xa2, 0x93, 0x13,
|
||||
0xf8, 0x7e, 0x38, 0xba, 0x63, 0x86, 0xd8, 0xa0, 0x3d, 0x11, 0x82, 0xaa, 0xb5, 0xb7, 0xbd, 0xd5,
|
||||
0x2b, 0x5f, 0x29, 0xad, 0x55, 0x0c, 0xfa, 0x1b, 0x3d, 0x07, 0xed, 0x61, 0x3c, 0xf7, 0xf6, 0x56,
|
||||
0xd8, 0xab, 0x5c, 0xa9, 0xac, 0x55, 0x0c, 0x19, 0xa8, 0xff, 0xb8, 0x0c, 0x17, 0x72, 0x64, 0x84,
|
||||
0x63, 0xdf, 0x0b, 0x31, 0xba, 0x09, 0x0b, 0x61, 0x64, 0x46, 0x93, 0x90, 0x53, 0xf2, 0x75, 0x25,
|
||||
0x25, 0xbb, 0xb4, 0x8b, 0xc1, 0xbb, 0xe6, 0xd1, 0x96, 0x15, 0x68, 0xd1, 0x37, 0x61, 0xc5, 0xf6,
|
||||
0xde, 0xc7, 0xae, 0x1f, 0x1c, 0x0f, 0xc6, 0x38, 0x18, 0x62, 0x2f, 0x32, 0x47, 0x58, 0xd0, 0xb8,
|
||||
0x2c, 0xda, 0xee, 0x27, 0x4d, 0xe8, 0x35, 0xb8, 0xc0, 0x64, 0x18, 0xe2, 0xe0, 0xd0, 0x1e, 0xe2,
|
||||
0x81, 0x79, 0x68, 0xda, 0x8e, 0xb9, 0xe7, 0xe0, 0x5e, 0xf5, 0x4a, 0x65, 0xad, 0x6e, 0xac, 0xd2,
|
||||
0xe6, 0x5d, 0xd6, 0x7a, 0x5b, 0x34, 0xa2, 0x6f, 0x80, 0x16, 0xe0, 0xfd, 0x00, 0x87, 0x07, 0x83,
|
||||
0x71, 0xe0, 0x8f, 0x02, 0x1c, 0x86, 0xbd, 0x1a, 0x45, 0xd3, 0xe5, 0xf0, 0xfb, 0x1c, 0xac, 0xff,
|
||||
0x79, 0x09, 0x56, 0x09, 0x33, 0xee, 0x9b, 0x41, 0x64, 0x3f, 0x05, 0x91, 0xe8, 0xd0, 0x4a, 0xb3,
|
||||
0xa1, 0x57, 0xa1, 0x6d, 0x12, 0x8c, 0xf4, 0x19, 0x0b, 0xf4, 0x84, 0x7d, 0x55, 0x4a, 0xaa, 0x04,
|
||||
0xd3, 0xff, 0x95, 0xeb, 0x4e, 0x9a, 0xce, 0x79, 0x64, 0x96, 0xc5, 0x59, 0xce, 0xe3, 0x3c, 0x8b,
|
||||
0xc4, 0x54, 0x9c, 0xaf, 0xaa, 0x39, 0xff, 0xcf, 0x15, 0x58, 0x7d, 0xcf, 0x37, 0xad, 0x44, 0x0d,
|
||||
0x7f, 0xfe, 0x9c, 0x7f, 0x13, 0x16, 0x98, 0x45, 0xf7, 0xaa, 0x14, 0xd7, 0xf3, 0x32, 0x2e, 0x6e,
|
||||
0xed, 0x09, 0x85, 0xbb, 0x14, 0x60, 0xf0, 0x41, 0xe8, 0x79, 0xe8, 0x04, 0x78, 0xec, 0xd8, 0x43,
|
||||
0x73, 0xe0, 0x4d, 0xdc, 0x3d, 0x1c, 0xf4, 0x6a, 0x57, 0x4a, 0x6b, 0x35, 0xa3, 0xcd, 0xa1, 0x3b,
|
||||
0x14, 0x88, 0x3e, 0x81, 0xf6, 0xbe, 0x8d, 0x1d, 0x6b, 0x40, 0x5d, 0xc2, 0xf6, 0x56, 0x6f, 0xe1,
|
||||
0x4a, 0x65, 0xad, 0xb9, 0xf1, 0xfa, 0x7a, 0xde, 0x1b, 0xad, 0x2b, 0x39, 0xb2, 0x7e, 0x97, 0x0c,
|
||||
0xdf, 0x66, 0xa3, 0xdf, 0xf6, 0xa2, 0xe0, 0xd8, 0x68, 0xed, 0xa7, 0x40, 0xa8, 0x07, 0x8b, 0x9c,
|
||||
0xbd, 0xbd, 0xc5, 0x2b, 0xa5, 0xb5, 0xba, 0x21, 0x3e, 0xd1, 0x8b, 0xd0, 0x0d, 0x70, 0xe8, 0x4f,
|
||||
0x82, 0x21, 0x1e, 0x8c, 0x02, 0x7f, 0x32, 0x0e, 0x7b, 0xf5, 0x2b, 0x95, 0xb5, 0x86, 0xd1, 0x11,
|
||||
0xe0, 0x7b, 0x14, 0xda, 0x7f, 0x0b, 0x96, 0x72, 0x58, 0x90, 0x06, 0x95, 0x47, 0xf8, 0x98, 0x0a,
|
||||
0xa2, 0x62, 0x90, 0x9f, 0x68, 0x05, 0x6a, 0x87, 0xa6, 0x33, 0xc1, 0x9c, 0xd5, 0xec, 0xe3, 0xbb,
|
||||
0xe5, 0x5b, 0x25, 0xfd, 0x8f, 0x4a, 0xd0, 0x33, 0xb0, 0x83, 0xcd, 0x10, 0x7f, 0x91, 0x22, 0x3d,
|
||||
0x0f, 0x0b, 0x9e, 0x6f, 0xe1, 0xed, 0x2d, 0x2a, 0xd2, 0x8a, 0xc1, 0xbf, 0xf4, 0xcf, 0x4b, 0xb0,
|
||||
0x72, 0x0f, 0x47, 0xc4, 0x0c, 0xec, 0x30, 0xb2, 0x87, 0xb1, 0x9d, 0xbf, 0x09, 0x95, 0x00, 0x3f,
|
||||
0xe6, 0x94, 0xbd, 0x24, 0x53, 0x16, 0xbb, 0x7f, 0xd5, 0x48, 0x83, 0x8c, 0x43, 0xcf, 0x42, 0xcb,
|
||||
0x72, 0x9d, 0xc1, 0xf0, 0xc0, 0xf4, 0x3c, 0xec, 0x30, 0x43, 0x6a, 0x18, 0x4d, 0xcb, 0x75, 0x36,
|
||||
0x39, 0x08, 0x5d, 0x06, 0x08, 0xf1, 0xc8, 0xc5, 0x5e, 0x94, 0xf8, 0xe4, 0x14, 0x04, 0x5d, 0x83,
|
||||
0xa5, 0xfd, 0xc0, 0x77, 0x07, 0xe1, 0x81, 0x19, 0x58, 0x03, 0x07, 0x9b, 0x16, 0x0e, 0x28, 0xf5,
|
||||
0x75, 0xa3, 0x4b, 0x1a, 0x76, 0x09, 0xfc, 0x3d, 0x0a, 0x46, 0x37, 0xa1, 0x16, 0x0e, 0xfd, 0x31,
|
||||
0xa6, 0x9a, 0xd6, 0xd9, 0xb8, 0xa4, 0xd2, 0xa1, 0x2d, 0x33, 0x32, 0x77, 0x49, 0x27, 0x83, 0xf5,
|
||||
0xd5, 0xff, 0xbe, 0xca, 0x4c, 0xed, 0x4b, 0xee, 0xe4, 0x52, 0xe6, 0x58, 0x7b, 0x32, 0xe6, 0xb8,
|
||||
0x50, 0xc8, 0x1c, 0x17, 0x4f, 0x36, 0xc7, 0x1c, 0xd7, 0x4e, 0x63, 0x8e, 0xf5, 0x99, 0xe6, 0xd8,
|
||||
0x50, 0x99, 0x23, 0x7a, 0x1b, 0xba, 0x2c, 0x80, 0xb0, 0xbd, 0x7d, 0x7f, 0xe0, 0xd8, 0x61, 0xd4,
|
||||
0x03, 0x4a, 0xe6, 0xa5, 0xac, 0x86, 0x5a, 0xf8, 0xd3, 0x75, 0x86, 0xd8, 0xdb, 0xf7, 0x8d, 0xb6,
|
||||
0x2d, 0x7e, 0xbe, 0x67, 0x87, 0xd1, 0xfc, 0x56, 0xfd, 0x8f, 0x89, 0x55, 0x7f, 0xd9, 0xb5, 0x27,
|
||||
0xb1, 0xfc, 0x9a, 0x64, 0xf9, 0x7f, 0x51, 0x82, 0xaf, 0xdd, 0xc3, 0x51, 0x4c, 0x3e, 0x31, 0x64,
|
||||
0xfc, 0x25, 0xdd, 0xe6, 0xff, 0xba, 0x04, 0x7d, 0x15, 0xad, 0xf3, 0x6c, 0xf5, 0x1f, 0xc1, 0xf9,
|
||||
0x18, 0xc7, 0xc0, 0xc2, 0xe1, 0x30, 0xb0, 0xc7, 0x54, 0x8c, 0xd4, 0x57, 0x35, 0x37, 0xae, 0xaa,
|
||||
0x14, 0x3f, 0x4b, 0xc1, 0x6a, 0x3c, 0xc5, 0x56, 0x6a, 0x06, 0xfd, 0x27, 0x25, 0x58, 0x25, 0xbe,
|
||||
0x91, 0x3b, 0x33, 0xa2, 0x81, 0x67, 0xe6, 0xab, 0xec, 0x26, 0xcb, 0x39, 0x37, 0x59, 0x80, 0xc7,
|
||||
0x34, 0xc4, 0xce, 0xd2, 0x33, 0x0f, 0xef, 0x5e, 0x85, 0x1a, 0x31, 0x40, 0xc1, 0xaa, 0x67, 0x54,
|
||||
0xac, 0x4a, 0x23, 0x63, 0xbd, 0x75, 0x8f, 0x51, 0x91, 0xf8, 0xed, 0x39, 0xd4, 0x2d, 0xbb, 0xec,
|
||||
0xb2, 0x62, 0xd9, 0xbf, 0x5d, 0x82, 0x0b, 0x39, 0x84, 0xf3, 0xac, 0xfb, 0x0d, 0x58, 0xa0, 0xbb,
|
||||
0x91, 0x58, 0xf8, 0x73, 0xca, 0x85, 0xa7, 0xd0, 0x11, 0x6f, 0x63, 0xf0, 0x31, 0xba, 0x0f, 0x5a,
|
||||
0xb6, 0x8d, 0xec, 0x93, 0x7c, 0x8f, 0x1c, 0x78, 0xa6, 0xcb, 0x18, 0xd0, 0x30, 0x9a, 0x1c, 0xb6,
|
||||
0x63, 0xba, 0x18, 0x7d, 0x0d, 0xea, 0xc4, 0x64, 0x07, 0xb6, 0x25, 0xc4, 0xbf, 0x48, 0x4d, 0xd8,
|
||||
0x0a, 0xd1, 0x25, 0x00, 0xda, 0x64, 0x5a, 0x56, 0xc0, 0xb6, 0xd0, 0x86, 0xd1, 0x20, 0x90, 0xdb,
|
||||
0x04, 0xa0, 0xff, 0x61, 0x09, 0x2e, 0xef, 0x1e, 0x7b, 0xc3, 0x1d, 0x7c, 0xb4, 0x19, 0x60, 0x33,
|
||||
0xc2, 0x89, 0xd3, 0x7e, 0xaa, 0x8c, 0x47, 0x57, 0xa0, 0x99, 0xb2, 0x5f, 0xae, 0x92, 0x69, 0x90,
|
||||
0xfe, 0x37, 0x25, 0x68, 0x91, 0x5d, 0xe4, 0x7d, 0x1c, 0x99, 0x44, 0x45, 0xd0, 0x77, 0xa0, 0xe1,
|
||||
0xf8, 0xa6, 0x35, 0x88, 0x8e, 0xc7, 0x8c, 0x9a, 0x4e, 0x96, 0x9a, 0x64, 0xeb, 0x79, 0x70, 0x3c,
|
||||
0xc6, 0x46, 0xdd, 0xe1, 0xbf, 0x0a, 0x51, 0x94, 0xf5, 0x32, 0x15, 0x85, 0xa7, 0x7c, 0x06, 0x9a,
|
||||
0x2e, 0x8e, 0x02, 0x7b, 0xc8, 0x88, 0xa8, 0x52, 0x51, 0x00, 0x03, 0x11, 0x44, 0xfa, 0x4f, 0x16,
|
||||
0xe0, 0xfc, 0xf7, 0xcd, 0x68, 0x78, 0xb0, 0xe5, 0x8a, 0x28, 0xe6, 0xec, 0x7c, 0x4c, 0xfc, 0x72,
|
||||
0x39, 0xed, 0x97, 0x9f, 0x98, 0xdf, 0x8f, 0x6d, 0xb4, 0xa6, 0xb2, 0x51, 0x92, 0x98, 0xaf, 0x7f,
|
||||
0xc8, 0xd5, 0x2c, 0x65, 0xa3, 0xa9, 0x60, 0x63, 0xe1, 0x2c, 0xc1, 0xc6, 0x26, 0xb4, 0xf1, 0xa7,
|
||||
0x43, 0x67, 0x42, 0xf4, 0x95, 0x62, 0x67, 0x51, 0xc4, 0x65, 0x05, 0xf6, 0xb4, 0x83, 0x68, 0xf1,
|
||||
0x41, 0xdb, 0x9c, 0x06, 0xa6, 0x0b, 0x2e, 0x8e, 0x4c, 0x1a, 0x2a, 0x34, 0x37, 0xae, 0x4c, 0xd3,
|
||||
0x05, 0xa1, 0x40, 0x4c, 0x1f, 0xc8, 0x17, 0xba, 0x08, 0x0d, 0x1e, 0xda, 0x6c, 0x6f, 0xf5, 0x1a,
|
||||
0x94, 0x7d, 0x09, 0x00, 0x99, 0xd0, 0xe6, 0xde, 0x93, 0x53, 0xc8, 0x02, 0x88, 0x37, 0x54, 0x08,
|
||||
0xd4, 0xc2, 0x4e, 0x53, 0x1e, 0xf2, 0x40, 0x27, 0x4c, 0x81, 0x48, 0xe6, 0xef, 0xef, 0xef, 0x3b,
|
||||
0xb6, 0x87, 0x77, 0x98, 0x84, 0x9b, 0x94, 0x08, 0x19, 0x48, 0xc2, 0xa1, 0x43, 0x1c, 0x84, 0xb6,
|
||||
0xef, 0xf5, 0x5a, 0xb4, 0x5d, 0x7c, 0xaa, 0xa2, 0x9c, 0xf6, 0x19, 0xa2, 0x9c, 0x01, 0x2c, 0xe5,
|
||||
0x28, 0x55, 0x44, 0x39, 0xdf, 0x4a, 0x47, 0x39, 0xb3, 0x45, 0x95, 0x8a, 0x82, 0x7e, 0x5a, 0x82,
|
||||
0xd5, 0x87, 0x5e, 0x38, 0xd9, 0x8b, 0x59, 0xf4, 0xc5, 0x98, 0x43, 0xd6, 0x89, 0x56, 0x73, 0x4e,
|
||||
0x54, 0xff, 0x9f, 0x1a, 0x74, 0xf9, 0x2a, 0x88, 0xd6, 0x50, 0x97, 0x73, 0x11, 0x1a, 0xf1, 0x3e,
|
||||
0xca, 0x19, 0x92, 0x00, 0xb2, 0x3e, 0xac, 0x9c, 0xf3, 0x61, 0x85, 0x48, 0x13, 0x51, 0x51, 0x35,
|
||||
0x15, 0x15, 0x5d, 0x02, 0xd8, 0x77, 0x26, 0xe1, 0xc1, 0x20, 0xb2, 0x5d, 0xcc, 0xa3, 0xb2, 0x06,
|
||||
0x85, 0x3c, 0xb0, 0x5d, 0x8c, 0x6e, 0x43, 0x6b, 0xcf, 0xf6, 0x1c, 0x7f, 0x34, 0x18, 0x9b, 0xd1,
|
||||
0x41, 0xc8, 0xd3, 0x62, 0x95, 0x58, 0x68, 0x0c, 0x7b, 0x87, 0xf6, 0x35, 0x9a, 0x6c, 0xcc, 0x7d,
|
||||
0x32, 0x04, 0x5d, 0x86, 0xa6, 0x37, 0x71, 0x07, 0xfe, 0xfe, 0x20, 0xf0, 0x8f, 0x42, 0x9a, 0xfc,
|
||||
0x56, 0x8c, 0x86, 0x37, 0x71, 0x3f, 0xd8, 0x37, 0xfc, 0x23, 0xb2, 0x8f, 0x35, 0xc8, 0x8e, 0x16,
|
||||
0x3a, 0xfe, 0x88, 0x25, 0xbe, 0xb3, 0xe7, 0x4f, 0x06, 0x90, 0xd1, 0x16, 0x76, 0x22, 0x93, 0x8e,
|
||||
0x6e, 0x14, 0x1b, 0x1d, 0x0f, 0x40, 0x2f, 0x40, 0x67, 0xe8, 0xbb, 0x63, 0x93, 0x72, 0xe8, 0x6e,
|
||||
0xe0, 0xbb, 0xd4, 0x00, 0x2b, 0x46, 0x06, 0x8a, 0x36, 0xa1, 0x99, 0x18, 0x41, 0xd8, 0x6b, 0x52,
|
||||
0x3c, 0xba, 0xca, 0x4a, 0x53, 0xa1, 0x3c, 0x51, 0x50, 0x88, 0xad, 0x20, 0x24, 0x9a, 0x21, 0x8c,
|
||||
0x3d, 0xb4, 0x3f, 0xc3, 0xdc, 0xd0, 0x9a, 0x1c, 0xb6, 0x6b, 0x7f, 0x86, 0x49, 0x7a, 0x64, 0x7b,
|
||||
0x21, 0x0e, 0x22, 0x91, 0xac, 0xf6, 0xda, 0x54, 0x7d, 0xda, 0x0c, 0xca, 0x15, 0x1b, 0x6d, 0x41,
|
||||
0x27, 0x8c, 0xcc, 0x20, 0x1a, 0x8c, 0xfd, 0x90, 0x2a, 0x40, 0xaf, 0x43, 0x75, 0x3b, 0x63, 0x92,
|
||||
0x6e, 0x38, 0x22, 0x8a, 0x7d, 0x9f, 0x77, 0x32, 0xda, 0x74, 0x90, 0xf8, 0x24, 0xb3, 0x50, 0x4e,
|
||||
0x24, 0xb3, 0x74, 0x0b, 0xcd, 0x42, 0x07, 0xc5, 0xb3, 0xac, 0x91, 0x74, 0xc9, 0xb4, 0xcc, 0x3d,
|
||||
0x07, 0x7f, 0xc8, 0x3d, 0x88, 0x46, 0x17, 0x96, 0x05, 0xeb, 0x7f, 0x52, 0x81, 0x8e, 0xcc, 0x1e,
|
||||
0xe2, 0x76, 0x58, 0x56, 0x26, 0x74, 0x5e, 0x7c, 0x12, 0x66, 0x61, 0x8f, 0x8c, 0x66, 0x29, 0x20,
|
||||
0x55, 0xf9, 0xba, 0xd1, 0x64, 0x30, 0x3a, 0x01, 0x51, 0x5d, 0x26, 0x14, 0x6a, 0x67, 0x15, 0xca,
|
||||
0xa8, 0x06, 0x85, 0xd0, 0x50, 0xa5, 0x07, 0x8b, 0x22, 0x7b, 0x64, 0x0a, 0x2f, 0x3e, 0x49, 0xcb,
|
||||
0xde, 0xc4, 0xa6, 0x58, 0x99, 0xc2, 0x8b, 0x4f, 0xb4, 0x05, 0x2d, 0x36, 0xe5, 0xd8, 0x0c, 0x4c,
|
||||
0x57, 0xa8, 0xfb, 0xb3, 0x4a, 0x97, 0xf1, 0x2e, 0x3e, 0xfe, 0x90, 0x78, 0x9f, 0xfb, 0xa6, 0x1d,
|
||||
0x18, 0x4c, 0x3d, 0xee, 0xd3, 0x51, 0x68, 0x0d, 0x34, 0x36, 0xcb, 0xbe, 0xed, 0x60, 0x6e, 0x38,
|
||||
0x8b, 0x2c, 0x85, 0xa4, 0xf0, 0xbb, 0xb6, 0x83, 0x99, 0x6d, 0xc4, 0x4b, 0xa0, 0x0a, 0x51, 0x67,
|
||||
0xa6, 0x41, 0x21, 0x54, 0x1d, 0xae, 0x02, 0xf3, 0xa2, 0x03, 0xe1, 0x9b, 0xd9, 0x06, 0xc2, 0x68,
|
||||
0xe4, 0x6c, 0xa5, 0x21, 0xd9, 0xc4, 0x65, 0xc6, 0x05, 0x6c, 0x39, 0xde, 0xc4, 0xa5, 0xa6, 0x75,
|
||||
0x03, 0x56, 0xd8, 0x78, 0xec, 0x8d, 0x6c, 0x0f, 0xc7, 0xd3, 0x34, 0x29, 0xaf, 0x10, 0x6d, 0x7b,
|
||||
0x9b, 0x36, 0x09, 0x19, 0xfd, 0x5e, 0x0d, 0x96, 0x89, 0x4f, 0xe2, 0xee, 0x69, 0x8e, 0x90, 0xe2,
|
||||
0x12, 0x80, 0x15, 0x46, 0x03, 0xc9, 0x8f, 0x36, 0xac, 0x30, 0xe2, 0x1b, 0xce, 0x77, 0x44, 0x44,
|
||||
0x50, 0x99, 0x9e, 0xe0, 0x64, 0x7c, 0x64, 0x3e, 0x2a, 0x38, 0x53, 0x45, 0xf0, 0x2a, 0xb4, 0x79,
|
||||
0x76, 0x2f, 0xa5, 0xa2, 0x2d, 0x06, 0xdc, 0x51, 0x7b, 0xfa, 0x05, 0x65, 0x65, 0x32, 0x15, 0x19,
|
||||
0x2c, 0xce, 0x17, 0x19, 0xd4, 0xb3, 0x91, 0xc1, 0x5d, 0xe8, 0xca, 0xc6, 0x29, 0xbc, 0xdb, 0x0c,
|
||||
0xeb, 0xec, 0x48, 0xd6, 0x19, 0xa6, 0x37, 0x76, 0x90, 0x37, 0xf6, 0xab, 0xd0, 0xf6, 0x30, 0xb6,
|
||||
0x06, 0x51, 0x60, 0x7a, 0xe1, 0x3e, 0x0e, 0xa8, 0x56, 0xd4, 0x8d, 0x16, 0x01, 0x3e, 0xe0, 0x30,
|
||||
0xf4, 0x06, 0x00, 0x5d, 0x23, 0x2b, 0x68, 0xb5, 0xa6, 0x17, 0xb4, 0xa8, 0xd2, 0xd0, 0x82, 0x16,
|
||||
0x65, 0x0a, 0xfd, 0xf9, 0x84, 0x62, 0x07, 0xfd, 0x5f, 0xca, 0x70, 0x9e, 0x17, 0x38, 0xe6, 0xd7,
|
||||
0xcb, 0x69, 0x7b, 0xbb, 0xd8, 0x1c, 0x2b, 0x27, 0x94, 0x0c, 0xaa, 0x05, 0xc2, 0xdf, 0x9a, 0x22,
|
||||
0xfc, 0x95, 0xd3, 0xe6, 0x85, 0x5c, 0xda, 0x1c, 0x57, 0x0c, 0x17, 0x8b, 0x57, 0x0c, 0xd1, 0x0a,
|
||||
0xd4, 0x68, 0x2e, 0x47, 0x75, 0xa7, 0x61, 0xb0, 0x8f, 0x42, 0x52, 0xd5, 0xff, 0xa0, 0x0c, 0xed,
|
||||
0x5d, 0x6c, 0x06, 0xc3, 0x03, 0xc1, 0xc7, 0xd7, 0xd2, 0x15, 0xd6, 0xe7, 0xa6, 0x54, 0x58, 0xa5,
|
||||
0x21, 0x5f, 0x99, 0xd2, 0x2a, 0x41, 0x10, 0xf9, 0x91, 0x19, 0x53, 0x39, 0xf0, 0x26, 0x2e, 0x2f,
|
||||
0x3b, 0x76, 0x69, 0x03, 0x27, 0x75, 0x67, 0xe2, 0xea, 0xff, 0x5d, 0x82, 0xd6, 0x2f, 0x93, 0x69,
|
||||
0x04, 0x63, 0x6e, 0xa5, 0x19, 0xf3, 0xc2, 0x14, 0xc6, 0x18, 0x24, 0x2d, 0xc3, 0x87, 0xf8, 0x2b,
|
||||
0x57, 0x75, 0xfe, 0xa7, 0x12, 0xf4, 0x49, 0x52, 0x6e, 0x30, 0xbf, 0x33, 0xbf, 0x75, 0x5d, 0x85,
|
||||
0xf6, 0xa1, 0x14, 0xfe, 0x96, 0xa9, 0x72, 0xb6, 0x0e, 0xd3, 0x45, 0x04, 0x03, 0x34, 0x51, 0x04,
|
||||
0xe6, 0x8b, 0x15, 0xdb, 0xc0, 0x8b, 0x2a, 0xaa, 0x33, 0xc4, 0x51, 0x0f, 0xd1, 0x0d, 0x64, 0xa0,
|
||||
0xfe, 0x3b, 0x25, 0x58, 0x56, 0x74, 0x44, 0x17, 0x60, 0x91, 0x17, 0x2c, 0x78, 0x84, 0xc1, 0xec,
|
||||
0xdd, 0x22, 0xe2, 0x49, 0x4a, 0x6e, 0xb6, 0x95, 0x8f, 0xa9, 0x2d, 0x92, 0x83, 0xc7, 0xd9, 0x99,
|
||||
0x95, 0x93, 0x8f, 0x15, 0xa2, 0x3e, 0xd4, 0xb9, 0x37, 0x15, 0x69, 0x6f, 0xfc, 0xad, 0x3f, 0x02,
|
||||
0x74, 0x0f, 0x27, 0x7b, 0xd7, 0x3c, 0x1c, 0x4d, 0xfc, 0x4d, 0x42, 0x68, 0xda, 0x09, 0x59, 0xfa,
|
||||
0x7f, 0x96, 0x60, 0x59, 0xc2, 0x36, 0x4f, 0x61, 0x29, 0xd9, 0x5f, 0xcb, 0x67, 0xd9, 0x5f, 0xa5,
|
||||
0xe2, 0x49, 0xe5, 0x54, 0xc5, 0x93, 0xcb, 0x00, 0x31, 0xff, 0x05, 0x47, 0x53, 0x10, 0xfd, 0x1f,
|
||||
0x4a, 0x70, 0xfe, 0x1d, 0xd3, 0xb3, 0xfc, 0xfd, 0xfd, 0xf9, 0x55, 0x75, 0x13, 0xa4, 0x44, 0xb9,
|
||||
0x68, 0xf9, 0x50, 0xce, 0xae, 0x5f, 0x82, 0xa5, 0x80, 0xed, 0x4c, 0x96, 0xac, 0xcb, 0x15, 0x43,
|
||||
0x13, 0x0d, 0xb1, 0x8e, 0xfe, 0x55, 0x19, 0x10, 0x59, 0xf5, 0x1d, 0xd3, 0x31, 0xbd, 0x21, 0x3e,
|
||||
0x3b, 0xe9, 0xcf, 0x43, 0x47, 0x0a, 0x61, 0xe2, 0xe3, 0xfc, 0x74, 0x0c, 0x13, 0xa2, 0x77, 0xa1,
|
||||
0xb3, 0xc7, 0x50, 0x0d, 0x02, 0x6c, 0x86, 0xbe, 0xc7, 0xc5, 0xa1, 0xac, 0x14, 0x3e, 0x08, 0xec,
|
||||
0xd1, 0x08, 0x07, 0x9b, 0xbe, 0x67, 0xf1, 0x38, 0x7f, 0x4f, 0x90, 0x49, 0x86, 0x12, 0x63, 0x48,
|
||||
0xe2, 0xb9, 0x58, 0x38, 0x71, 0x40, 0x47, 0x59, 0x11, 0x62, 0xd3, 0x49, 0x18, 0x91, 0xec, 0x86,
|
||||
0x1a, 0x6b, 0xd8, 0x9d, 0x5e, 0x28, 0x56, 0xc4, 0x57, 0xfa, 0xdf, 0x96, 0x00, 0xc5, 0xc9, 0x3c,
|
||||
0xad, 0x7e, 0x50, 0x8b, 0xce, 0x0e, 0x2d, 0x29, 0x36, 0xe5, 0x8b, 0xd0, 0xb0, 0xc4, 0x48, 0xee,
|
||||
0x82, 0x12, 0x00, 0xdd, 0x23, 0x29, 0xd1, 0x03, 0xa2, 0x79, 0xd8, 0x12, 0xc9, 0x32, 0x03, 0xbe,
|
||||
0x47, 0x61, 0x72, 0x78, 0x56, 0xcd, 0x86, 0x67, 0xe9, 0x3a, 0x68, 0x4d, 0xaa, 0x83, 0xea, 0x3f,
|
||||
0x2d, 0x83, 0x46, 0xb7, 0x90, 0xcd, 0xa4, 0xa0, 0x55, 0x88, 0xe8, 0xab, 0xd0, 0xe6, 0xd7, 0x61,
|
||||
0x24, 0xc2, 0x5b, 0x8f, 0x53, 0x93, 0x91, 0x90, 0x9e, 0x75, 0x0a, 0x70, 0x38, 0x71, 0x92, 0x3c,
|
||||
0x91, 0xa5, 0x3f, 0xe8, 0x31, 0xdb, 0xbb, 0x48, 0x93, 0x18, 0xf1, 0x10, 0xce, 0x8f, 0x1c, 0x7f,
|
||||
0xcf, 0x74, 0x06, 0xb2, 0x78, 0x98, 0x0c, 0x0b, 0x68, 0xfc, 0x0a, 0x1b, 0xbe, 0x9b, 0x96, 0x61,
|
||||
0x88, 0xee, 0x40, 0x3b, 0xc4, 0xf8, 0x51, 0x92, 0x3c, 0xd6, 0x8a, 0x24, 0x8f, 0x2d, 0x32, 0x46,
|
||||
0x7c, 0xe9, 0x7f, 0x5c, 0x82, 0x6e, 0xe6, 0x14, 0x23, 0x5b, 0xea, 0x28, 0xe5, 0x4b, 0x1d, 0xb7,
|
||||
0xa0, 0x46, 0x3c, 0x15, 0xdb, 0x5b, 0x3a, 0xea, 0x34, 0x5c, 0x9e, 0xd5, 0x60, 0x03, 0xd0, 0x75,
|
||||
0x58, 0x56, 0xdc, 0x96, 0xe0, 0xe2, 0x47, 0xf9, 0xcb, 0x12, 0xfa, 0xcf, 0xaa, 0xd0, 0x4c, 0xb1,
|
||||
0x62, 0x46, 0x95, 0xe6, 0x89, 0x54, 0xa3, 0xa7, 0x9d, 0x8e, 0x13, 0x95, 0x73, 0xb1, 0xcb, 0x32,
|
||||
0x45, 0x9e, 0xb6, 0xba, 0xd8, 0xa5, 0x79, 0x62, 0x3a, 0x05, 0x5c, 0x90, 0x53, 0x40, 0x39, 0x49,
|
||||
0x5e, 0x3c, 0x21, 0x49, 0xae, 0xcb, 0x49, 0xb2, 0x64, 0x42, 0x8d, 0xac, 0x09, 0x15, 0x2d, 0x9c,
|
||||
0xdc, 0x80, 0xe5, 0x21, 0xab, 0xf6, 0xdf, 0x39, 0xde, 0x8c, 0x9b, 0x78, 0x50, 0xaa, 0x6a, 0x42,
|
||||
0x77, 0x93, 0x92, 0x28, 0x93, 0x32, 0x4b, 0x3a, 0xd4, 0x39, 0x38, 0x97, 0x0d, 0x13, 0xb2, 0xf0,
|
||||
0xcc, 0xf4, 0x2b, 0x5b, 0xb2, 0x69, 0x9f, 0xa9, 0x64, 0xf3, 0x0c, 0x34, 0x45, 0xa4, 0x42, 0x2c,
|
||||
0xbd, 0xc3, 0x9c, 0x9e, 0x70, 0x03, 0x56, 0x28, 0xf9, 0x81, 0xae, 0x7c, 0x1e, 0x92, 0xad, 0x60,
|
||||
0x68, 0xf9, 0x0a, 0xc6, 0x05, 0x58, 0xb4, 0xc3, 0xc1, 0xbe, 0xf9, 0x08, 0xf7, 0x96, 0x68, 0xeb,
|
||||
0x82, 0x1d, 0xde, 0x35, 0x1f, 0x61, 0xfd, 0xdf, 0x2a, 0xd0, 0x49, 0x36, 0xd8, 0xc2, 0x1e, 0xa4,
|
||||
0xc8, 0x8d, 0xa1, 0x1d, 0xd0, 0x92, 0xb8, 0x87, 0x72, 0xf8, 0xc4, 0x1c, 0x3c, 0x7b, 0xc8, 0xd8,
|
||||
0x1d, 0x67, 0xec, 0x55, 0xda, 0xee, 0xab, 0xa7, 0xda, 0xee, 0xe7, 0xbc, 0x4b, 0x70, 0x13, 0x56,
|
||||
0xe3, 0xbd, 0x57, 0x5a, 0x36, 0x4b, 0xb0, 0x56, 0x44, 0xe3, 0xfd, 0xf4, 0xf2, 0xa7, 0xb8, 0x80,
|
||||
0xc5, 0x69, 0x2e, 0x20, 0xab, 0x02, 0xf5, 0x9c, 0x0a, 0xe4, 0xaf, 0x34, 0x34, 0x14, 0x57, 0x1a,
|
||||
0xf4, 0x87, 0xb0, 0x4c, 0xcb, 0xd3, 0xe1, 0x30, 0xb0, 0xf7, 0x70, 0x9c, 0x02, 0x14, 0x11, 0x6b,
|
||||
0x1f, 0xea, 0x99, 0x2c, 0x22, 0xfe, 0xd6, 0x7f, 0x5c, 0x82, 0xf3, 0xf9, 0x79, 0xa9, 0xc6, 0x24,
|
||||
0x8e, 0xa4, 0x24, 0x39, 0x92, 0x5f, 0x81, 0xe5, 0x54, 0x44, 0x29, 0xcd, 0x3c, 0x25, 0x02, 0x57,
|
||||
0x10, 0x6e, 0xa0, 0x64, 0x0e, 0x01, 0xd3, 0x7f, 0x56, 0x8a, 0xab, 0xfc, 0x04, 0x36, 0xa2, 0x47,
|
||||
0x28, 0x64, 0x5f, 0xf3, 0x3d, 0xc7, 0xf6, 0xe2, 0x82, 0x0b, 0x5f, 0x23, 0x03, 0xf2, 0x82, 0xcb,
|
||||
0x3b, 0xd0, 0xe5, 0x9d, 0xe2, 0xed, 0xa9, 0x60, 0x40, 0xd6, 0x61, 0xe3, 0xe2, 0x8d, 0xe9, 0x79,
|
||||
0xe8, 0xf0, 0xb3, 0x0d, 0x81, 0xaf, 0xa2, 0x3a, 0xf1, 0xf8, 0x1e, 0x68, 0xa2, 0xdb, 0x69, 0x37,
|
||||
0xc4, 0x2e, 0x1f, 0x18, 0x07, 0x76, 0xbf, 0x59, 0x82, 0x9e, 0xbc, 0x3d, 0xa6, 0x96, 0x7f, 0xfa,
|
||||
0xf0, 0xee, 0x75, 0xf9, 0x44, 0xfb, 0xf9, 0x13, 0xe8, 0x49, 0xf0, 0x88, 0x73, 0xed, 0xdf, 0x2d,
|
||||
0xd3, 0xeb, 0x09, 0x24, 0xd5, 0xdb, 0xb2, 0xc3, 0x28, 0xb0, 0xf7, 0x26, 0xf3, 0x9d, 0xb1, 0x9a,
|
||||
0xd0, 0x1c, 0x1e, 0xe0, 0xe1, 0xa3, 0xb1, 0x6f, 0x27, 0x52, 0x79, 0x4b, 0x45, 0xd3, 0x74, 0xb4,
|
||||
0xeb, 0x9b, 0xc9, 0x0c, 0xec, 0x90, 0x2a, 0x3d, 0x67, 0xff, 0x87, 0xa0, 0x65, 0x3b, 0xa4, 0xcf,
|
||||
0x86, 0x1a, 0xec, 0x6c, 0xe8, 0xa6, 0x7c, 0x36, 0x34, 0x23, 0xd2, 0x48, 0x1d, 0x0d, 0xfd, 0x5d,
|
||||
0x19, 0xbe, 0xae, 0xa4, 0x6d, 0x9e, 0x2c, 0x69, 0x5a, 0x1d, 0xe9, 0x0e, 0xd4, 0x33, 0x49, 0xed,
|
||||
0x0b, 0x27, 0xc8, 0x8f, 0xd7, 0x5d, 0x59, 0x69, 0x30, 0x4c, 0x62, 0xab, 0xc4, 0xe0, 0xab, 0xd3,
|
||||
0xe7, 0xe0, 0x76, 0x27, 0xcd, 0x21, 0xc6, 0xa1, 0xdb, 0xd0, 0x62, 0x05, 0x83, 0xc1, 0xa1, 0x8d,
|
||||
0x8f, 0xc4, 0xc9, 0xeb, 0x65, 0xa5, 0x6b, 0xa6, 0xfd, 0x3e, 0xb4, 0xf1, 0x91, 0xd1, 0x74, 0xe2,
|
||||
0xdf, 0xa1, 0xfe, 0xfb, 0x55, 0x80, 0xa4, 0x8d, 0x64, 0x67, 0x89, 0xcd, 0x73, 0x23, 0x4e, 0x41,
|
||||
0x48, 0x2c, 0x21, 0x47, 0xae, 0xe2, 0x13, 0x19, 0xc9, 0xc9, 0x87, 0x65, 0x87, 0x11, 0xe7, 0xcb,
|
||||
0xf5, 0x93, 0x69, 0x11, 0x2c, 0x22, 0x22, 0xe3, 0x3a, 0x13, 0x26, 0x10, 0xf4, 0x0a, 0xa0, 0x51,
|
||||
0xe0, 0x1f, 0xd9, 0xde, 0x28, 0x9d, 0x6f, 0xb0, 0xb4, 0x64, 0x89, 0xb7, 0xa4, 0x12, 0x8e, 0x1f,
|
||||
0x81, 0x96, 0xe9, 0x2e, 0x58, 0x72, 0x73, 0x06, 0x19, 0xf7, 0xa4, 0xb9, 0xb8, 0xfa, 0x76, 0x65,
|
||||
0x0c, 0xf4, 0x98, 0xf5, 0x81, 0x19, 0x8c, 0xb0, 0x90, 0x28, 0x8f, 0xc3, 0x64, 0x60, 0x7f, 0x00,
|
||||
0x5a, 0x76, 0x55, 0x8a, 0x43, 0xd0, 0x57, 0x65, 0x45, 0x3f, 0xc9, 0x1f, 0x91, 0x69, 0x52, 0xaa,
|
||||
0xde, 0x37, 0x61, 0x45, 0x45, 0xaf, 0x02, 0xc9, 0x99, 0xad, 0xe9, 0xad, 0x38, 0x24, 0xa6, 0x72,
|
||||
0x98, 0xb6, 0xcb, 0xa4, 0x0a, 0xcf, 0x65, 0xa9, 0xf0, 0xac, 0xff, 0x7a, 0x05, 0x50, 0x5e, 0xfd,
|
||||
0x51, 0x07, 0xca, 0xf1, 0x24, 0xe5, 0xed, 0xad, 0x8c, 0xba, 0x95, 0x73, 0xea, 0x76, 0x11, 0x1a,
|
||||
0xf1, 0xae, 0xcf, 0x5d, 0x7c, 0x02, 0x48, 0x2b, 0x63, 0x55, 0x56, 0xc6, 0x14, 0x61, 0x35, 0xb9,
|
||||
0x22, 0x7e, 0x03, 0x56, 0x1c, 0x33, 0x8c, 0x06, 0xac, 0xf0, 0x1e, 0xd9, 0x2e, 0x0e, 0x23, 0xd3,
|
||||
0x1d, 0x53, 0x51, 0x56, 0x0d, 0x44, 0xda, 0xb6, 0x48, 0xd3, 0x03, 0xd1, 0x82, 0x1e, 0x88, 0xe8,
|
||||
0x9a, 0xf8, 0x5e, 0x7e, 0xbd, 0xe0, 0xd5, 0x62, 0xe6, 0x9e, 0x94, 0xbb, 0x99, 0x46, 0x35, 0xe2,
|
||||
0xb0, 0xb3, 0xff, 0x09, 0x74, 0xe4, 0x46, 0x85, 0xf8, 0x6e, 0xc9, 0xe2, 0x2b, 0x12, 0xd8, 0xa6,
|
||||
0x64, 0x78, 0x00, 0x28, 0xef, 0x3c, 0xd2, 0x3c, 0x2b, 0xc9, 0x3c, 0x9b, 0x25, 0x8b, 0x14, 0x4f,
|
||||
0x2b, 0xb2, 0xb0, 0xff, 0xac, 0x02, 0x28, 0x89, 0xe0, 0xe2, 0xe3, 0xee, 0x22, 0x61, 0xcf, 0x75,
|
||||
0x58, 0xce, 0xc7, 0x77, 0x22, 0xa8, 0x45, 0xb9, 0xe8, 0x4e, 0x15, 0x89, 0x55, 0x54, 0x97, 0x4b,
|
||||
0x5f, 0x8b, 0xdd, 0x3d, 0x0b, 0x57, 0x2f, 0x4f, 0x3d, 0xcf, 0x90, 0x3d, 0xfe, 0x0f, 0xb3, 0x97,
|
||||
0x52, 0x99, 0xff, 0xb8, 0xa5, 0x74, 0xcd, 0xb9, 0x25, 0xcf, 0xbc, 0x91, 0x2a, 0x05, 0xd2, 0x0b,
|
||||
0xa7, 0x09, 0xa4, 0xe7, 0xbf, 0x42, 0xfa, 0x1f, 0x65, 0x58, 0x8a, 0x19, 0x79, 0x2a, 0x21, 0xcd,
|
||||
0xbe, 0x99, 0xf0, 0x94, 0xa5, 0xf2, 0xb1, 0x5a, 0x2a, 0xdf, 0x3e, 0x31, 0x99, 0x29, 0x2a, 0x94,
|
||||
0xf9, 0x39, 0xfb, 0x19, 0x2c, 0xf2, 0xb2, 0x74, 0xce, 0xc1, 0x15, 0x29, 0x17, 0xac, 0x40, 0x8d,
|
||||
0xf8, 0x53, 0x51, 0x53, 0x64, 0x1f, 0x8c, 0xa5, 0xe9, 0x2b, 0xca, 0xdc, 0xc7, 0xb5, 0xa5, 0x1b,
|
||||
0xca, 0xfa, 0x6f, 0x55, 0x00, 0x76, 0x8f, 0xbd, 0xe1, 0x6d, 0x66, 0xa4, 0x37, 0xa0, 0x3a, 0xeb,
|
||||
0x42, 0x1b, 0xe9, 0x4d, 0x75, 0x8b, 0xf6, 0x2c, 0x20, 0x5c, 0xa9, 0x20, 0x52, 0xc9, 0x16, 0x44,
|
||||
0xa6, 0x95, 0x32, 0xa6, 0xbb, 0xe0, 0x6f, 0x43, 0x95, 0xba, 0x52, 0x76, 0xdf, 0xab, 0xd0, 0xa9,
|
||||
0x30, 0x1d, 0x80, 0xd6, 0x40, 0x6c, 0xc9, 0xdb, 0x1e, 0xdb, 0x73, 0xa9, 0x3b, 0xae, 0x18, 0x59,
|
||||
0x30, 0x7a, 0x01, 0x3a, 0xac, 0x10, 0x16, 0x77, 0x64, 0x39, 0x5d, 0x06, 0x9a, 0xdf, 0xd1, 0x1b,
|
||||
0x8a, 0x1d, 0x9d, 0xe0, 0xb5, 0x02, 0x7f, 0x3c, 0x4e, 0x4d, 0xc7, 0x2a, 0x21, 0x59, 0xb0, 0xfe,
|
||||
0x79, 0x19, 0x2e, 0x10, 0xfe, 0x3e, 0x99, 0xa8, 0xbc, 0x88, 0xf2, 0xa4, 0xfc, 0x79, 0x45, 0xf6,
|
||||
0xe7, 0xb7, 0x60, 0x91, 0x95, 0x5b, 0x44, 0x7c, 0x79, 0x79, 0x9a, 0x36, 0x30, 0xdd, 0x31, 0x44,
|
||||
0xf7, 0x79, 0x73, 0x76, 0xe9, 0xcc, 0x7c, 0x61, 0xbe, 0x33, 0xf3, 0xc5, 0x6c, 0x51, 0x36, 0xa5,
|
||||
0x56, 0x75, 0x79, 0x17, 0x7a, 0x08, 0x6d, 0x23, 0x6d, 0x1a, 0x08, 0x41, 0x35, 0x75, 0xc5, 0x95,
|
||||
0xfe, 0xa6, 0x69, 0xb6, 0x39, 0x36, 0x87, 0x76, 0x74, 0x4c, 0xd9, 0x59, 0x33, 0xe2, 0x6f, 0xb5,
|
||||
0x1d, 0xea, 0xff, 0x5b, 0x82, 0xf3, 0xe2, 0x50, 0x95, 0x5b, 0xf9, 0xd9, 0x25, 0xba, 0x01, 0xab,
|
||||
0xdc, 0xa4, 0x33, 0xb6, 0xcd, 0x82, 0xe9, 0x65, 0x06, 0x93, 0x97, 0xb1, 0x01, 0xab, 0x11, 0xd5,
|
||||
0xae, 0xec, 0x18, 0x26, 0xef, 0x65, 0xd6, 0x28, 0x8f, 0x29, 0x72, 0xa8, 0xfd, 0x0c, 0xbb, 0xb3,
|
||||
0xc5, 0x59, 0xcb, 0x8d, 0x14, 0xbc, 0x89, 0xcb, 0x57, 0xa9, 0x1f, 0xc1, 0x45, 0x76, 0xc9, 0x7c,
|
||||
0x4f, 0xa6, 0x68, 0xae, 0x33, 0x0d, 0xe5, 0xba, 0x33, 0x3e, 0xed, 0x4f, 0x4b, 0x70, 0x69, 0x0a,
|
||||
0xe6, 0x79, 0xb2, 0xb9, 0xf7, 0x94, 0xd8, 0xa7, 0xe4, 0xde, 0x12, 0x5e, 0x76, 0x61, 0x41, 0x26,
|
||||
0xf2, 0xf3, 0x2a, 0x2c, 0xe5, 0x3a, 0x9d, 0x5a, 0xe7, 0x5e, 0x06, 0x44, 0x84, 0x10, 0x3f, 0xa8,
|
||||
0xa4, 0xe5, 0x0c, 0xbe, 0x79, 0x6a, 0xde, 0xc4, 0x8d, 0x1f, 0x53, 0xee, 0xf8, 0x16, 0x46, 0x36,
|
||||
0xeb, 0xcd, 0x4e, 0x34, 0x62, 0xc9, 0x55, 0xa7, 0xbf, 0x9b, 0xc9, 0x11, 0xb8, 0xbe, 0x33, 0x71,
|
||||
0xd9, 0xe1, 0x07, 0x97, 0x32, 0xdb, 0x10, 0x09, 0x2a, 0x09, 0x8c, 0xf6, 0x61, 0x89, 0xde, 0xe8,
|
||||
0x9b, 0x44, 0x23, 0x9f, 0x24, 0x54, 0x94, 0x2e, 0xb6, 0xed, 0x7e, 0xb7, 0x30, 0xa6, 0x0f, 0xf8,
|
||||
0x68, 0x42, 0x3c, 0xcf, 0xa9, 0x3c, 0x19, 0x2a, 0xf0, 0xd8, 0xde, 0xd0, 0x77, 0x63, 0x3c, 0x0b,
|
||||
0xa7, 0xc4, 0xb3, 0xcd, 0x47, 0xcb, 0x78, 0xd2, 0xd0, 0xfe, 0x26, 0xac, 0x2a, 0x97, 0x3e, 0x6b,
|
||||
0xa3, 0xaf, 0xa5, 0x33, 0xaf, 0x3b, 0xb0, 0xa2, 0x5a, 0xd5, 0x19, 0xe6, 0xc8, 0x51, 0x7c, 0x9a,
|
||||
0x39, 0xf4, 0xbf, 0x2c, 0x43, 0x7b, 0x0b, 0x3b, 0x38, 0xc2, 0x4f, 0xf7, 0xcc, 0x39, 0x77, 0x80,
|
||||
0x5e, 0xc9, 0x1f, 0xa0, 0xe7, 0x6e, 0x03, 0x54, 0x15, 0xb7, 0x01, 0x2e, 0xc5, 0x97, 0x20, 0xc8,
|
||||
0x2c, 0x35, 0x39, 0x86, 0xb0, 0xd0, 0xeb, 0xd0, 0x1a, 0x07, 0xb6, 0x6b, 0x06, 0xc7, 0x83, 0x47,
|
||||
0xf8, 0x38, 0xe4, 0x9b, 0x46, 0x4f, 0xb9, 0xed, 0x6c, 0x6f, 0x85, 0x46, 0x93, 0xf7, 0x7e, 0x17,
|
||||
0x1f, 0xd3, 0x0b, 0x16, 0x71, 0x1a, 0xc7, 0xee, 0xe0, 0x55, 0x8d, 0x14, 0xe4, 0xda, 0x4b, 0xd0,
|
||||
0x88, 0x2f, 0x2e, 0xa1, 0x3a, 0x54, 0xef, 0x4e, 0x1c, 0x47, 0x3b, 0x87, 0x1a, 0x50, 0xa3, 0x89,
|
||||
0x9e, 0x56, 0x22, 0x3f, 0x69, 0xec, 0xa7, 0x95, 0xaf, 0xfd, 0x12, 0x34, 0xe2, 0x0b, 0x14, 0xa8,
|
||||
0x09, 0x8b, 0x0f, 0xbd, 0x77, 0x3d, 0xff, 0xc8, 0xd3, 0xce, 0xa1, 0x45, 0xa8, 0xdc, 0x76, 0x1c,
|
||||
0xad, 0x84, 0xda, 0xd0, 0xd8, 0x8d, 0x02, 0x6c, 0x12, 0xf1, 0x69, 0x65, 0xd4, 0x01, 0x78, 0xc7,
|
||||
0x0e, 0x23, 0x3f, 0xb0, 0x87, 0xa6, 0xa3, 0x55, 0xae, 0x7d, 0x06, 0x1d, 0xb9, 0x9e, 0x8e, 0x5a,
|
||||
0x50, 0xdf, 0xf1, 0xa3, 0xb7, 0x3f, 0xb5, 0xc3, 0x48, 0x3b, 0x47, 0xfa, 0xef, 0xf8, 0xd1, 0xfd,
|
||||
0x00, 0x87, 0xd8, 0x8b, 0xb4, 0x12, 0x02, 0x58, 0xf8, 0xc0, 0xdb, 0xb2, 0xc3, 0x47, 0x5a, 0x19,
|
||||
0x2d, 0xf3, 0xa3, 0x32, 0xd3, 0xd9, 0xe6, 0x45, 0x6a, 0xad, 0x42, 0x86, 0xc7, 0x5f, 0x55, 0xa4,
|
||||
0x41, 0x2b, 0xee, 0x72, 0xef, 0xfe, 0x43, 0xad, 0xc6, 0xa8, 0x27, 0x3f, 0x17, 0xae, 0x59, 0xa0,
|
||||
0x65, 0x8f, 0x78, 0xc9, 0x9c, 0x6c, 0x11, 0x31, 0x48, 0x3b, 0x47, 0x56, 0xc6, 0xcf, 0xd8, 0xb5,
|
||||
0x12, 0xea, 0x42, 0x33, 0x75, 0x62, 0xad, 0x95, 0x09, 0xe0, 0x5e, 0x30, 0x1e, 0x72, 0xdd, 0x62,
|
||||
0x24, 0x10, 0x45, 0xdd, 0x22, 0x9c, 0xa8, 0x5e, 0xbb, 0x03, 0x75, 0x91, 0x9f, 0x90, 0xae, 0x9c,
|
||||
0x45, 0xe4, 0x53, 0x3b, 0x87, 0x96, 0xa0, 0x2d, 0x3d, 0xd6, 0xd3, 0x4a, 0x08, 0x41, 0x47, 0x7e,
|
||||
0x4e, 0xab, 0x95, 0xaf, 0x6d, 0x00, 0x24, 0x71, 0x3e, 0x21, 0x67, 0xdb, 0x3b, 0x34, 0x1d, 0xdb,
|
||||
0x62, 0xb4, 0x91, 0x26, 0xc2, 0x5d, 0xca, 0x1d, 0x66, 0xb3, 0x5a, 0xf9, 0xda, 0x9b, 0x50, 0x17,
|
||||
0xb1, 0x2b, 0x81, 0x1b, 0xd8, 0xf5, 0x0f, 0x31, 0x93, 0xcc, 0x2e, 0x8e, 0x98, 0x1c, 0x6f, 0xbb,
|
||||
0xd8, 0xb3, 0xb4, 0x32, 0x21, 0xe3, 0xe1, 0xd8, 0x32, 0x23, 0x71, 0xe9, 0x51, 0xab, 0x6c, 0xfc,
|
||||
0xd7, 0x32, 0x00, 0x3b, 0xb3, 0xf5, 0xfd, 0xc0, 0x42, 0x0e, 0xbd, 0xbb, 0xb1, 0xe9, 0xbb, 0x63,
|
||||
0xdf, 0x13, 0x07, 0x4a, 0x21, 0x5a, 0xcf, 0x94, 0x48, 0xd8, 0x47, 0xbe, 0x23, 0xe7, 0x4d, 0xff,
|
||||
0x39, 0x65, 0xff, 0x4c, 0x67, 0xfd, 0x1c, 0x72, 0x29, 0xb6, 0x07, 0xb6, 0x8b, 0x1f, 0xd8, 0xc3,
|
||||
0x47, 0xf1, 0x41, 0xef, 0xf4, 0x67, 0xae, 0x99, 0xae, 0x02, 0xdf, 0x55, 0x25, 0xbe, 0xdd, 0x28,
|
||||
0xb0, 0xbd, 0x91, 0xd8, 0x1d, 0xf5, 0x73, 0xe8, 0x71, 0xe6, 0x91, 0xad, 0x40, 0xb8, 0x51, 0xe4,
|
||||
0x5d, 0xed, 0xd9, 0x50, 0x3a, 0xd0, 0xcd, 0xfc, 0x9b, 0x01, 0xba, 0xa6, 0x7e, 0xad, 0xa4, 0xfa,
|
||||
0xe7, 0x85, 0xfe, 0x4b, 0x85, 0xfa, 0xc6, 0xd8, 0x6c, 0xe8, 0xc8, 0xcf, 0xf0, 0xd1, 0x37, 0xa6,
|
||||
0x4d, 0x90, 0x7b, 0x2f, 0xd9, 0xbf, 0x56, 0xa4, 0x6b, 0x8c, 0xea, 0x23, 0xa6, 0xbe, 0xb3, 0x50,
|
||||
0x29, 0x9f, 0xa8, 0xf6, 0x4f, 0x0a, 0x4c, 0xf4, 0x73, 0xe8, 0x13, 0x12, 0x43, 0x64, 0x5e, 0x75,
|
||||
0xa2, 0x97, 0xd5, 0xfb, 0x9e, 0xfa, 0xf1, 0xe7, 0x2c, 0x0c, 0x1f, 0x65, 0x8d, 0x6f, 0x3a, 0xf5,
|
||||
0xb9, 0xe7, 0xe2, 0xc5, 0xa9, 0x4f, 0x4d, 0x7f, 0x12, 0xf5, 0xa7, 0xc6, 0xe0, 0xb0, 0x74, 0x4a,
|
||||
0xf1, 0x9e, 0x2c, 0xab, 0xca, 0x49, 0x36, 0x33, 0xfd, 0xf1, 0xd9, 0x2c, 0x6c, 0x13, 0x6a, 0xa4,
|
||||
0xd9, 0xcb, 0x0a, 0xaf, 0x4c, 0x39, 0x06, 0x51, 0x3f, 0x64, 0xed, 0xaf, 0x17, 0xed, 0x9e, 0xd6,
|
||||
0x65, 0xf9, 0xad, 0xa4, 0x5a, 0x44, 0xca, 0xf7, 0x9d, 0x6a, 0x5d, 0x56, 0x3f, 0xbd, 0xd4, 0xcf,
|
||||
0xa1, 0x07, 0x92, 0xab, 0x47, 0x2f, 0x4c, 0x53, 0x05, 0xf9, 0xf6, 0xd2, 0x2c, 0xbe, 0xfd, 0x2a,
|
||||
0x20, 0x66, 0xa9, 0xde, 0xbe, 0x3d, 0x9a, 0x04, 0x26, 0x53, 0xe3, 0x69, 0xce, 0x2d, 0xdf, 0x55,
|
||||
0xa0, 0xf9, 0xe6, 0x29, 0x46, 0xc4, 0x4b, 0x1a, 0x00, 0xdc, 0xc3, 0xd1, 0xfb, 0xf4, 0xd1, 0x5c,
|
||||
0x98, 0x5d, 0x51, 0xe2, 0xbf, 0x79, 0x07, 0x81, 0xea, 0xc5, 0x99, 0xfd, 0x62, 0x04, 0x7b, 0xd0,
|
||||
0xbc, 0x47, 0xf2, 0x2b, 0x1a, 0x33, 0x86, 0x68, 0xea, 0x48, 0xd1, 0x43, 0xa0, 0x58, 0x9b, 0xdd,
|
||||
0x31, 0xed, 0x3c, 0x33, 0xef, 0x46, 0xd1, 0x54, 0xc1, 0xe6, 0x5f, 0xb3, 0xaa, 0x9d, 0xe7, 0x94,
|
||||
0x87, 0xa8, 0x6c, 0x45, 0xf4, 0x28, 0xee, 0x1d, 0x6c, 0x3a, 0xd1, 0xc1, 0x94, 0x15, 0xa5, 0x7a,
|
||||
0x9c, 0xbc, 0x22, 0xa9, 0x63, 0x8c, 0x03, 0xc3, 0x32, 0xb3, 0x42, 0x39, 0x31, 0xbd, 0xae, 0x9e,
|
||||
0x22, 0xdf, 0xb3, 0xa0, 0xea, 0x99, 0xb0, 0xb4, 0x15, 0xf8, 0x63, 0x19, 0xc9, 0x2b, 0x4a, 0x24,
|
||||
0xb9, 0x7e, 0x05, 0x51, 0x7c, 0x1f, 0x5a, 0x22, 0xff, 0xa7, 0x19, 0x8b, 0x9a, 0x0b, 0xe9, 0x2e,
|
||||
0x05, 0x27, 0xfe, 0x18, 0xba, 0x99, 0xc2, 0x82, 0x5a, 0xe8, 0xea, 0xea, 0xc3, 0xac, 0xd9, 0x8f,
|
||||
0x00, 0xd1, 0xc7, 0xc0, 0xf2, 0xff, 0x19, 0xa8, 0xe3, 0x9b, 0x7c, 0x47, 0x81, 0xe4, 0x7a, 0xe1,
|
||||
0xfe, 0xb1, 0xe4, 0x7f, 0x0d, 0x56, 0x95, 0xc9, 0x7b, 0xd6, 0x21, 0xf0, 0xeb, 0xca, 0x27, 0x54,
|
||||
0x18, 0xb2, 0x0e, 0xe1, 0xc4, 0x11, 0x02, 0xff, 0xc6, 0xbf, 0x23, 0x68, 0xd0, 0x38, 0x8f, 0x4a,
|
||||
0xeb, 0x17, 0x61, 0xde, 0x93, 0x0d, 0xf3, 0x3e, 0x86, 0x6e, 0xe6, 0x91, 0xaa, 0x5a, 0x69, 0xd5,
|
||||
0x2f, 0x59, 0x0b, 0x44, 0x2b, 0xf2, 0xfb, 0x4e, 0xf5, 0x56, 0xa8, 0x7c, 0x03, 0x3a, 0x6b, 0xee,
|
||||
0x0f, 0xd9, 0x03, 0xf0, 0xf8, 0x34, 0xf7, 0xc5, 0xa9, 0x87, 0x0f, 0xf2, 0xb5, 0xe3, 0x2f, 0x3e,
|
||||
0x0a, 0xfa, 0x6a, 0x47, 0xa0, 0x1f, 0x43, 0x37, 0xf3, 0xb0, 0x47, 0xad, 0x31, 0xea, 0xd7, 0x3f,
|
||||
0xb3, 0x66, 0xff, 0x39, 0x06, 0x4f, 0x16, 0x2c, 0x2b, 0xde, 0x51, 0xa0, 0xf5, 0x69, 0x81, 0xa8,
|
||||
0xfa, 0xc1, 0xc5, 0xec, 0x05, 0xb5, 0x25, 0x33, 0xcd, 0xee, 0x37, 0x09, 0x91, 0xd9, 0x3f, 0x42,
|
||||
0xea, 0xbf, 0x5c, 0xec, 0x5f, 0x93, 0xe2, 0x05, 0xed, 0xc2, 0x02, 0x7b, 0xee, 0x83, 0x9e, 0x55,
|
||||
0x1f, 0xc2, 0xa4, 0x9e, 0x02, 0xf5, 0x67, 0x3d, 0x18, 0x0a, 0x27, 0x4e, 0x44, 0xe8, 0xff, 0x01,
|
||||
0x74, 0x18, 0x28, 0x66, 0xd0, 0x13, 0x9c, 0x7c, 0x17, 0x6a, 0xd4, 0xb5, 0x23, 0xe5, 0x81, 0x42,
|
||||
0xfa, 0x51, 0x4f, 0x7f, 0xf6, 0x3b, 0x9e, 0x84, 0xe2, 0x26, 0x1d, 0xc9, 0xaa, 0x3a, 0x4f, 0x72,
|
||||
0xea, 0x1b, 0x25, 0xf4, 0x03, 0x68, 0xb3, 0xc9, 0x05, 0x37, 0x9e, 0x24, 0xe5, 0x43, 0x58, 0x4e,
|
||||
0x51, 0xfe, 0x34, 0x50, 0xdc, 0x28, 0xfd, 0x3f, 0x8f, 0xee, 0x3f, 0xa5, 0x8f, 0x6a, 0xb2, 0xd7,
|
||||
0xc6, 0xd0, 0xfa, 0xe9, 0xee, 0xbe, 0xf5, 0xaf, 0x17, 0xee, 0x1f, 0x63, 0xfe, 0x11, 0x68, 0xd9,
|
||||
0xa3, 0x42, 0xf4, 0xd2, 0x34, 0x5f, 0xa2, 0xc2, 0x39, 0xc3, 0x91, 0x7c, 0x0f, 0x16, 0x58, 0x8d,
|
||||
0x58, 0x6d, 0x80, 0x52, 0xfd, 0x78, 0xc6, 0x5c, 0x77, 0xbe, 0xf5, 0xd1, 0xc6, 0xc8, 0x8e, 0x0e,
|
||||
0x26, 0x7b, 0xa4, 0xe5, 0x3a, 0xeb, 0xfa, 0x8a, 0xed, 0xf3, 0x5f, 0xd7, 0x85, 0x2c, 0xaf, 0xd3,
|
||||
0xd1, 0xd7, 0x29, 0x82, 0xf1, 0xde, 0xde, 0x02, 0xfd, 0xbc, 0xf9, 0x7f, 0x01, 0x00, 0x00, 0xff,
|
||||
0xff, 0x58, 0xcf, 0x74, 0x0f, 0x02, 0x54, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -236,6 +236,7 @@ func (broker *CoordinatorBroker) GetIndexInfo(ctx context.Context, collectionID
|
||||
IndexSize: int64(info.GetSerializedSize()),
|
||||
IndexVersion: info.GetIndexVersion(),
|
||||
NumRows: info.GetNumRows(),
|
||||
IndexEngineVersion: info.GetIndexEngineVersion(),
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,10 @@ func (li *LoadIndexInfo) appendLoadIndexInfo(indexInfo *querypb.FieldIndexInfo,
|
||||
}
|
||||
}
|
||||
|
||||
if err := li.appendIndexEngineVersion(indexInfo.GetIndexEngineVersion()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = li.appendIndexData(indexPaths)
|
||||
return err
|
||||
}
|
||||
@ -148,3 +152,11 @@ func (li *LoadIndexInfo) appendIndexData(indexKeys []string) error {
|
||||
status := C.AppendIndexV2(li.cLoadIndexInfo)
|
||||
return HandleCStatus(&status, "AppendIndex failed")
|
||||
}
|
||||
|
||||
func (li *LoadIndexInfo) appendIndexEngineVersion(indexEngineVersion string) error {
|
||||
cIndexEngineVersion := C.CString(indexEngineVersion)
|
||||
defer C.free(unsafe.Pointer(cIndexEngineVersion))
|
||||
|
||||
status := C.AppendIndexEngineVersionToLoadInfo(li.cLoadIndexInfo, cIndexEngineVersion)
|
||||
return HandleCStatus(&status, "AppendIndexEngineVersion failed")
|
||||
}
|
||||
|
@ -673,6 +673,7 @@ func (loader *segmentLoader) loadFieldsIndex(ctx context.Context,
|
||||
zap.Int64("segment", segment.segmentID),
|
||||
zap.Int64("fieldID", fieldID),
|
||||
zap.Any("binlog", fieldInfo.FieldBinlog.Binlogs),
|
||||
zap.String("index_engine_version", fieldInfo.IndexInfo.GetIndexEngineVersion()),
|
||||
)
|
||||
|
||||
segment.AddIndex(fieldID, fieldInfo)
|
||||
|
@ -150,3 +150,11 @@ func (bi *BuildIndexInfo) AppendInsertFile(filePath string) error {
|
||||
status := C.AppendInsertFilePath(bi.cBuildIndexInfo, cInsertFilePath)
|
||||
return HandleCStatus(&status, "appendInsertFile failed")
|
||||
}
|
||||
|
||||
func (bi *BuildIndexInfo) AppendIndexEngineVersion(indexEngineVersion string) error {
|
||||
cIndexEngineVersion := C.CString(indexEngineVersion)
|
||||
defer C.free(unsafe.Pointer(cIndexEngineVersion))
|
||||
|
||||
status := C.AppendIndexEngineVersionToBuildInfo(bi.cBuildIndexInfo, cIndexEngineVersion)
|
||||
return HandleCStatus(&status, "AppendIndexEngineVersion failed")
|
||||
}
|
||||
|
@ -216,6 +216,8 @@ type commonConfig struct {
|
||||
EnableLockMetrics ParamItem `refreshable:"false"`
|
||||
LockSlowLogInfoThreshold ParamItem `refreshable:"true"`
|
||||
LockSlowLogWarnThreshold ParamItem `refreshable:"true"`
|
||||
|
||||
IndexEngineVersion ParamItem `refreshable:"true"`
|
||||
}
|
||||
|
||||
func (p *commonConfig) init(base *BaseTable) {
|
||||
@ -612,6 +614,15 @@ like the old password verification when updating the credential`,
|
||||
Export: true,
|
||||
}
|
||||
p.LockSlowLogWarnThreshold.Init(base.mgr)
|
||||
|
||||
p.IndexEngineVersion = ParamItem{
|
||||
Key: "common.indexEngineVersion",
|
||||
Version: "2.3.2",
|
||||
DefaultValue: "knowhere-v0",
|
||||
Doc: "version of index engine",
|
||||
Export: true,
|
||||
}
|
||||
p.IndexEngineVersion.Init(base.mgr)
|
||||
}
|
||||
|
||||
type traceConfig struct {
|
||||
|
@ -105,8 +105,9 @@ BUILD_DISK_ANN="OFF"
|
||||
USE_ASAN="OFF"
|
||||
OPEN_SIMD="OFF"
|
||||
USE_DYNAMIC_SIMD="OFF"
|
||||
INDEX_ENGINE="KNOWHERE"
|
||||
|
||||
while getopts "p:d:t:s:f:n:i:y:a:ulrcghzmebZ" arg; do
|
||||
while getopts "p:d:t:s:f:n:i:y:a:x:ulrcghzmebZ" arg; do
|
||||
case $arg in
|
||||
f)
|
||||
CUSTOM_THIRDPARTY_PATH=$OPTARG
|
||||
@ -170,6 +171,9 @@ while getopts "p:d:t:s:f:n:i:y:a:ulrcghzmebZ" arg; do
|
||||
Z)
|
||||
BUILD_WITHOUT_AZURE="on"
|
||||
;;
|
||||
x)
|
||||
INDEX_ENGINE=$OPTARG
|
||||
;;
|
||||
h) # help
|
||||
echo "
|
||||
|
||||
@ -290,8 +294,9 @@ ${CMAKE_EXTRA_ARGS} \
|
||||
-DBUILD_DISK_ANN=${BUILD_DISK_ANN} \
|
||||
-DUSE_ASAN=${USE_ASAN} \
|
||||
-DOPEN_SIMD=${OPEN_SIMD} \
|
||||
-DUSE_DYNAMIC_SIMD=${USE_DYNAMIC_SIMD}
|
||||
-DCPU_ARCH=${CPU_ARCH} "
|
||||
-DUSE_DYNAMIC_SIMD=${USE_DYNAMIC_SIMD} \
|
||||
-DCPU_ARCH=${CPU_ARCH} \
|
||||
-DINDEX_ENGINE=${INDEX_ENGINE} "
|
||||
if [ -z "$BUILD_WITHOUT_AZURE" ]; then
|
||||
CMAKE_CMD=${CMAKE_CMD}"-DAZURE_BUILD_DIR=${AZURE_BUILD_DIR} \
|
||||
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} "
|
||||
|
4
tests/scripts/values/cardinal.yaml
Normal file
4
tests/scripts/values/cardinal.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
extraConfigFiles:
|
||||
user.yaml: |+
|
||||
common:
|
||||
indexEngineVersion: "cardinal-v0"
|
Loading…
Reference in New Issue
Block a user